Docker NGINX
Docker NGINX Tutorial – We shall learn to run NGINX in a Docker Container on Ubuntu. Following is a step by step guide to dockerize NGINX :
1. Install Docker Engine
Docker is the prerequisite.
Follow the tutorial, Install Docker on Ubuntu, to install docker on your computer with Ubuntu.
2. Pull NGINX from Docker Hub
Run the following command to pull NGINX from Docker Hub to Docker Host.
$ sudo docker pull nginx
arjun@arjun-VPCEH26EN:~$ sudo docker pull nginx
[sudo] password for arjun:
Using default tag: latest
latest: Pulling from library/nginx
afeb2bfd31c0: Pull complete
7ff5d10493db: Pull complete
d2562f1ae1d0: Pull complete
Digest: sha256:aa1c5b5f864508ef5ad472c45c8d3b6ba34e5c0fb34aaea24acf4b0cee33187e
Status: Downloaded newer image for nginx:latest
3. Run Docker with nginx
Run the following command as root user.
$ docker run --name docker-nginx -p 80:80 -d nginx
–name docker-nginx : Name given to the container that is run is docker-nginx
-p 80:80 : the port we are exposing and mapping from local machine port number to that of container, in the format local_machine_port:container_port
-d : Detached mode – Runs the container in background
root@arjun-VPCEH26EN:/home/arjun# docker run --name docker-nginx -p 80:80 -d nginx
26676407c03db63a74b7ccf17796d034bcd2ffd909a568585f3047e2d52d091c
Now the NGINX is running in its default configuration.
If you open a browser and hit the url 0.0.0.0:80, you would get following welcome page from NGINX Web Server.
4. Include a static Web Application in the Docker with NGINX
To include our static Web Application into the Docker Image with NGINX, we shall create a Dockerfile (including commands to build image) and an html file with name index.html (acting as our web application) in a directory named nginx-app.
FROM nginx
COPY . /usr/share/nginx/html
<html>
<head>
<title>Docker NGINX Tutorial</title>
</head>
<body>
<h1>NGINX Tutorial - Brought to you by TutorialKart</h1>
<p>Learn to Dockerize with NGINX and your web application.</p>
<a href="https://www.tutorialkart.com/docker/docker-tutorial/">Docker Tutorial</a>
<a href="https://www.tutorialkart.com/nginx/nginx-tutorial/">NGINX Tutorial</a>
</body>
</html>
Run the following command in Terminal from directory – nginx-app, to create image file.
$ docker build -t nginx-application .
root@arjun-VPCEH26EN:/home/arjun/workspace/docker/nginx-app# docker build -t nginx-application .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM nginx
---> da5939581ac8
Step 2/2 : COPY . /usr/share/nginx/html
---> ae2c0a239687
Removing intermediate container f90e669aafe9
Successfully built ae2c0a239687
Successfully tagged nginx-application:latest
Image file is created successfully.
root@arjun-VPCEH26EN:/home/arjun/workspace/docker/nginx-app# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-application latest ae2c0a239687 2 minutes ago 108MB
nginx latest da5939581ac8 7 days ago 108MB
python latest 26acbad26a2c 7 days ago 690MB
java 8 d23bdf5b1b1b 8 months ago 643MB
hello-world latest c54a2cc56cbb 14 months ago 1.85kB
Run the following command in Terminal from directory, to run the image file in a container.
$ docker run --name docker-nginx -p 80:80 -d nginx-application
nginx-application – Docker Image file name.
root@arjun-VPCEH26EN:/home/arjun/workspace/docker/nginx-app# docker run --name docker-nginx -p 80:80 -d nginx-application
1a2ddec91961b76b73e19af28db06e658afcbe2a44e3ae01205d55f9d910922f
The container docker-nginx is running.
root@arjun-VPCEH26EN:/home/arjun/workspace/docker/nginx-app# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a2ddec91961 nginx-application "nginx -g 'daemon ..." About an hour ago Up About an hour 0.0.0.0:80->80/tcp docker-nginx
Hit the url 0.0.0.0:80/index.html in any of your browser.
Conclusion
In this NGINX Tutorial – Docker NGINX, we have learnt to deploy NGINX with Docker