Bird
Raised Fist0
Nginxdevops~5 mins

Official Nginx Docker image - Commands & Configuration

Choose your learning style10 modes available
Introduction
Running web servers can be complex because of setup and dependencies. The official Nginx Docker image lets you run Nginx easily inside a container, so you get a ready-to-use web server without manual installation.
When you want to quickly serve static web pages without installing software on your computer.
When you need a lightweight web server to test your website locally.
When you want to run multiple web servers on the same machine without conflicts.
When you want to deploy a web server in a consistent environment across different computers.
When you want to isolate your web server from other applications for security.
Config File - default.conf
default.conf
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

This file configures Nginx to listen on port 80 and serve files from the default web directory inside the container. It also defines a simple error page for server errors.

Commands
This command downloads the official Nginx Docker image version 1.25.2 from Docker Hub to your local machine.
Terminal
docker pull nginx:1.25.2
Expected OutputExpected
1.25.2: Pulling from library/nginx Digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Status: Downloaded newer image for nginx:1.25.2 docker.io/library/nginx:1.25.2
This command starts a new container named 'my-nginx' from the Nginx image, runs it in the background, and maps port 8080 on your computer to port 80 inside the container so you can access the web server.
Terminal
docker run --name my-nginx -d -p 8080:80 nginx:1.25.2
Expected OutputExpected
a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcdef
→
--name - Assigns a name to the container for easy reference.
→
-d - Runs the container in detached mode (in the background).
→
-p - Maps a port on the host to a port in the container.
This command lists all running containers so you can verify that your Nginx container is running.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:1.25.2 "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp my-nginx
This command fetches the default web page served by Nginx on your local machine to confirm the server is working.
Terminal
curl http://localhost:8080
Expected OutputExpected
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working.</p> </body> </html>
Key Concept

If you remember nothing else from this pattern, remember: the official Nginx Docker image lets you run a ready web server quickly and consistently inside a container.

Common Mistakes
Not mapping the container port to a host port with -p flag.
Without port mapping, you cannot access the web server from your computer browser.
Always use -p host_port:container_port to expose Nginx outside the container.
Running the container without -d flag and expecting it to run in background.
Without -d, the container runs in the foreground and blocks your terminal.
Use -d to run the container detached so you can continue using the terminal.
Using 'latest' tag instead of a specific version.
The 'latest' tag can change unexpectedly causing inconsistent environments.
Use a specific stable version like 'nginx:1.25.2' for predictable results.
Summary
Pull the official Nginx image with a specific version to ensure stability.
Run the container with port mapping and detached mode to serve web pages accessible on your computer.
Verify the container is running and test the web server by fetching the default page.

Practice

(1/5)
1. What is the primary purpose of the official Nginx Docker image?
easy
A. To quickly run Nginx inside a container for web serving
B. To build custom Linux kernels
C. To manage databases inside containers
D. To create virtual machines

Solution

  1. Step 1: Understand the role of Nginx

    Nginx is a web server used to serve websites and handle web traffic.
  2. Step 2: Recognize the Docker image purpose

    The official Nginx Docker image allows running Nginx easily inside containers for web serving.
  3. Final Answer:

    To quickly run Nginx inside a container for web serving -> Option A
  4. Quick Check:

    Official Nginx Docker image = Quick Nginx container [OK]
Hint: Nginx image runs web server in container fast [OK]
Common Mistakes:
  • Confusing Nginx with database or VM tools
  • Thinking it builds Linux kernels
  • Assuming it manages virtual machines
2. Which Docker command correctly runs the official Nginx image exposing port 80 on the host?
easy
A. docker run -p 80 nginx
B. docker run -p 8080:80 nginx
C. docker run -p 80:80 nginx
D. docker run nginx -p 80:80

Solution

  1. Step 1: Understand Docker port mapping syntax

    The correct syntax is docker run -p hostPort:containerPort image.
  2. Step 2: Match the command to expose port 80 on host

    docker run -p 80:80 nginx uses -p 80:80 which maps host port 80 to container port 80 correctly.
  3. Final Answer:

    docker run -p 80:80 nginx -> Option C
  4. Quick Check:

    Port mapping syntax = -p hostPort:containerPort [OK]
Hint: Use -p hostPort:containerPort to expose ports [OK]
Common Mistakes:
  • Omitting container port in -p option
  • Placing -p after image name
  • Using wrong port numbers
3. What will be the result of running this command?
docker run --rm -p 8080:80 nginx

Then accessing http://localhost:8080 in a browser?
medium
A. Connection refused error
B. You will see the default Nginx welcome page
C. 404 Not Found error
D. Docker container will fail to start

Solution

  1. Step 1: Analyze the Docker run command

    The command runs Nginx container mapping host port 8080 to container port 80, with --rm to remove container after exit.
  2. Step 2: Understand Nginx default behavior

    Nginx serves a default welcome page on port 80 if no custom config is provided.
  3. Final Answer:

    You will see the default Nginx welcome page -> Option B
  4. Quick Check:

    Default Nginx page served on mapped port [OK]
Hint: Default Nginx page shows if no config mounted [OK]
Common Mistakes:
  • Expecting 404 without custom config
  • Thinking container fails without volumes
  • Confusing port 80 with 8080 inside container
4. You tried to run:
docker run -p 80:80 nginx

but got an error: port is already allocated. What is the best fix?
medium
A. Stop the process using port 80 or use a different host port
B. Change the container port to 8080
C. Remove the Nginx image and pull again
D. Run the container without port mapping

Solution

  1. Step 1: Understand the error meaning

    "port is already allocated" means host port 80 is in use by another process.
  2. Step 2: Choose a fix for port conflict

    Stopping the process using port 80 or mapping to a different host port avoids conflict.
  3. Final Answer:

    Stop the process using port 80 or use a different host port -> Option A
  4. Quick Check:

    Port conflict fix = stop process or change host port [OK]
Hint: Port conflict means host port busy; change or free it [OK]
Common Mistakes:
  • Changing container port instead of host port
  • Deleting image won't fix port conflict
  • Running without port mapping disables access
5. You want to customize Nginx by using your own nginx.conf file located at /home/user/nginx.conf. Which Docker command correctly mounts this config into the container?
hard
A. docker run -v /etc/nginx/nginx.conf:/home/user/nginx.conf -p 8080:80 nginx
B. docker run -v /home/user/nginx.conf:/usr/local/nginx/nginx.conf -p 8080:80 nginx
C. docker run -v /home/user/nginx.conf:/etc/nginx/conf.d/nginx.conf -p 8080:80 nginx
D. docker run -v /home/user/nginx.conf:/etc/nginx/nginx.conf:ro -p 8080:80 nginx

Solution

  1. Step 1: Identify correct Nginx config path inside container

    The main config file path in official Nginx image is /etc/nginx/nginx.conf.
  2. Step 2: Use volume mount syntax to map host config

    Mount host file /home/user/nginx.conf to container path /etc/nginx/nginx.conf with read-only flag :ro.
  3. Final Answer:

    docker run -v /home/user/nginx.conf:/etc/nginx/nginx.conf:ro -p 8080:80 nginx -> Option D
  4. Quick Check:

    Mount host config to /etc/nginx/nginx.conf with :ro [OK]
Hint: Mount config to /etc/nginx/nginx.conf with :ro for safety [OK]
Common Mistakes:
  • Reversing source and target paths in -v option
  • Mounting to wrong container config directory
  • Omitting :ro to prevent accidental changes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard