Docker Tutorial

20. Docker Web Server | Hosting Websites in Docker Containers

Docker – Web Server

Docker makes it easy to host web servers in isolated environments. You can quickly run popular web servers like Nginx, Apache, or custom web applications inside containers, ensuring consistency across development and production environments.

Running an Nginx Web Server

Nginx is a popular web server that can be run easily using Docker.


# Run Nginx container
docker run -d -p 8080:80 --name mynginx nginx

# Access the web server via browser
http://localhost:8080

Running an Apache Web Server


# Run Apache container
docker run -d -p 8081:80 --name myapache httpd

# Access via browser
http://localhost:8081

Serving Custom Website Content

You can serve your own HTML files by mounting a host directory into the web server container.


# Mount local website files to Nginx container
docker run -d -p 8080:80 -v /host/website:/usr/share/nginx/html nginx

Managing Web Server Containers

  • Start a stopped container: docker start mynginx
  • Stop a running container: docker stop mynginx
  • View logs: docker logs mynginx
  • Access shell: docker exec -it mynginx /bin/bash

Best Practices for Docker Web Servers

  • Use official Docker images like nginx or httpd for stability and security.
  • Mount only necessary directories for website content.
  • Map container ports carefully to avoid conflicts on the host.
  • Keep containers lightweight for faster startup and scalability.
  • Monitor container logs to detect issues early.

Conclusion

Docker provides a fast and consistent way to host web servers and web applications. Using containers ensures your web server environment is isolated, reproducible, and easy to manage across development, staging, and production.

Leave a Reply

Your email address will not be published. Required fields are marked *