2.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	title
| 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 httpdLoadedoption shows script file path. - 
In that file, we have a line which actually starts service -
ExecStart = /usr/sbin/httpd.......So the command/usr/sbin/httpdactually starts httpd server. - 
Service is running or not, can be checked by -
$ ps -aux | grep httpd - 
So we don't require
systemctlwe can directly start our web server using-$ /usr/sbin/httpdThis will start the web server. - 
ifconfigdoesn't work in docker.- So install software, which gives 
ifconfigcommand. - 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/httpdin 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