Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Edit apache configuration in docker

Tags:

docker

First time docker user here, I'm using this image: https://github.com/dgraziotin/osx-docker-lamp

I want to make the apache in that container to use a configuration file from the host system. How do I do that?

I know I can use nsenter, but I think my changes will get deleted when the container is turned off.

Thank you

like image 860
Cornwell Avatar asked Jul 17 '15 16:07

Cornwell


People also ask

Can I edit code in docker container?

You can now make changes inside the container, without manually copying files or setting up a working directory bind mount. This maximizes efficiency when using a Dockerized development environment or debugging a malfunctioning container.

Does docker use Apache?

Docker httpd port mappingThe httpd Docker image internally runs the Apache Web Server on port 80. However, Docker does not expose the ports of any internally running processes by default.


1 Answers

The best solution is using VOLUME.

docker pull dgraziotin/lamp

You need to copy /etc/apache2/ from container to current directory in host computer. Then you can do this:

cd ~
mkdir conf 
docker run -i -t --rm -v ~/conf:/tmp/conf  dgraziotin/lamp:latest /bin/bash

On container do:

ls /tmp/conf
cd /etc/apache2/ 
tar -cf /tmp/conf/apache-conf.tar *
exit

On host computer:

cd conf
tar -xf apache-conf.tar
cd ..
# alter your configuration in this file and save
vi conf/apache2.conf
# run your container : daemon mode
docker run -d -p 9180:80 --name web-01 -v ~/conf:/etc/apache2  dgraziotin/lamp:latest
docker ps

To list conf content on Container use:

docker exec web-01 ls -lAt   /etc/apache2/
total 72
-rw-r--r-- 1 root root  1779 Jul 17 20:24 envvars
drwxr-xr-x 2 root root  4096 Apr 10 11:46 mods-enabled
drwxr-xr-x 2 root root  4096 Apr 10 11:45 sites-available
-rw-r--r-- 1 root root  7136 Apr 10 11:45 apache2.conf
drwxr-xr-x 2 root root  4096 Apr 10 11:45 mods-available
drwxr-xr-x 2 root root  4096 Apr 10 11:44 conf-enabled
drwxr-xr-x 2 root root  4096 Apr 10 11:44 sites-enabled
drwxr-xr-x 2 root root  4096 Apr 10 11:44 conf-available
-rw-r--r-- 1 root root   320 Jan  7  2014 ports.conf
-rw-r--r-- 1 root root 31063 Jan  3  2014 magic

Use docker exec web-01 cat /etc/apache2/apache2.conf to list content inside Container.

One the WEB page to test your environment.

I hope this help you.

like image 70
João Paraná Avatar answered Oct 11 '22 04:10

João Paraná