2.2 KiB
title |
---|
Creating a Web Server inside Docker |
Creating a Web Server inside Docker
Start docker and it’s container -
```
$ systemctl restart docker
$ systemctl enable docker
$ docker run -it --name webserver centos:latest
```
Install httpd
-
yum is already configured in centos docker image. So directly install httpd software -
$ yum install httpd -y
-
Create a dummy web page to check the server -
$ cd /var/www/html $ vi index.html
Start services -
-
If we use systemctl to start the services, this will not work and gives an error.
-
systemctl doesn't work in docker.
-
In actual RedHat system, when we start a service it actually runs a script in background. That script starts daemons.
-
To find the path of that script, check status of service
$ systemctl status httpd
Loaded
option shows script file path. -
In that file, we have a line which actually starts service -
ExecStart = /usr/sbin/httpd.......
So the command/usr/sbin/httpd
actually starts httpd server. -
Service is running or not, can be checked by -
$ ps -aux | grep httpd
-
So we don't require
systemctl
we can directly start our web server using-$ /usr/sbin/httpd
This will start the web server. -
ifconfig
doesn't work in docker.- So install software, which gives
ifconfig
command. - It can be checked in actual Redhat system by running this command-
$ rpm -qf /usr/sbin/ifconfig
- This comes from net-tools package.
- So Install net-tools in docker os.
- So install software, which gives
-
Making image of created web server -
$ docker commit webserver apacheimg:v1
- Name of container is webserver.
- This image can be share with exact setup with other users.
-
To save created image -
$ docker save apacheimg:v1 -o mywebserver.tar
-
To start httpd service automatically when container starts -
- Write
/usr/sbin/httpd
in following file.$ vim /root/.bashrc
- Write
-
To copy a file in container from the base system -
$ docker cp /root/form.txt myconatiner:/
Summary
Summary of all the commands -
$ docker run -it --name webserver centos:latest
$ yum install httpd -y
$ rpm -q httpd
$ cd /var/www/html
$ vi index.html
// write some web content
$ /usr/sbin/httpd
$ yum install net-tool
$ ifconfig