Docker Web Server 新手完整教學:Nginx 與 Apache 從入門到多容器部署

Docker Web Server 新手完整教學:Nginx 與 Apache 從入門到多容器部署

Docker 容器化讓部署 Web Server 變得簡單且可控,本文將帶你從零開始學 Docker 安裝、配置 Nginx 與 Apache 容器,完整介紹端口映射、資料掛載、多容器同時運行,並示範內網與外網訪問方式,幫助新手快速上手 Docker Web Server 部署。

Docker 與 Web Server 簡介

Docker 提供輕量化容器環境,可快速部署 Nginx 與 Apache,並避免互相干擾。每個容器內部端口(如 HTTP 80 埠)為服務提供端口,需透過端口映射才能在本地或外部訪問。學習 Docker 容器概念對新手管理多個 Web Server 容器非常重要。

項目說明
容器化Web Server 可獨立運行,不受其他服務影響
端口映射將容器內部端口對應到主機端口,方便訪問
Volume掛載本地資料到容器,方便修改網頁內容

Docker 安裝與基本指令

新手可依次使用以下指令安裝 Docker,啟動服務並驗證版本,建立基礎環境以便後續部署 Nginx 與 Apache 容器:

項目指令說明
更新 apt 套件清單sudo apt update更新本機套件列表
安裝 Dockersudo apt install -y docker.io安裝 Docker 引擎
啟動 Docker 服務sudo systemctl start docker啟動 Docker
開機自動啟動 Dockersudo systemctl enable docker開機自動啟動 Docker
查看 Docker 版本docker --version確認 Docker 安裝成功
查看 Docker 服務狀態sudo systemctl status docker確認 Docker 正常運行

Nginx 與 Apache 容器部署

建立 Nginx 與 Apache 容器,並將容器內 80 埠映射到主機不同端口,方便內網測試與外網訪問,以下案例供新手參考:


# 啟動 Nginx
docker run -d --name nginx-server -p 8080:80 nginx:latest

# 啟動 Apache
docker run -d --name apache-server -p 8081:80 httpd:latest

# 查看容器
docker ps

# 停止容器
docker stop nginx-server
docker stop apache-server

使用 Docker Compose 同時管理多容器:


version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: nginx-server
    ports:
      - "8080:80"
    volumes:
      - ./nginx/html:/usr/share/nginx/html

  apache:
    image: httpd:latest
    container_name: apache-server
    ports:
      - "8081:80"
    volumes:
      - ./apache/html:/usr/local/apache2/htdocs/

端口映射與內外網訪問說明

容器內 Nginx 與 Apache 都預設使用 80 埠提供 HTTP 服務。為了同時啟動多個容器,我們將容器內部 80 埠映射到不同的主機端口:

  • Nginx → 主機端口 8080
  • Apache → 主機端口 8081

內部測試時:

  • http://localhost:8080 → 訪問 Nginx
  • http://localhost:8081 → 訪問 Apache

外部訪問時(假設防火牆對外 IP 為 203.0.113.10):

  • http://203.0.113.10:8080 → 訪問 Nginx
  • http://203.0.113.10:8081 → 訪問 Apache

如果希望外部訪問使用標準 80/443 埠,則需要透過:

  1. 反向代理(Reverse Proxy)
  2. 防火牆端口轉發(iptables DNAT / MASQUERADE)

將不同網域導向不同容器的 80 埠。

FAQ 常見問題

如何確認 Docker 容器是否啟動?

使用 docker ps 列出正在運行的容器,包括容器名稱和映射端口,方便新手確認 Nginx 或 Apache 是否正常運行。

如何停止或刪除容器?

透過 docker stop 停止容器,docker rm 刪除容器,可避免端口衝突,適合新手管理多個容器。

如何查看容器日誌?

使用 docker logs 容器名稱 查看運行日誌,方便排查錯誤或確認服務狀態,是新手學習 Docker 內部運作的重要方法。

如何修改容器內網頁內容?

透過 Volume 掛載本地資料夾,如 nginx/htmlapache/html,即可直接修改網頁並立即生效。

容器內部端口與本地端口的關係?

容器內部端口 80 提供 HTTP 服務,本地端口 8080/8081 映射到容器端口,瀏覽器即可訪問不同容器,對學習 Docker 多容器部署非常實用。

如何同時啟動多個 Web 容器?

需使用不同本地端口,例如 Nginx 8080、Apache 8081,避免端口衝突,確保多容器同時運行,是新手必學的配置技巧。

如何讓外網使用標準 HTTP/HTTPS 端口?

必須透過反向代理或防火牆端口轉發,將不同網域導向不同容器 80 埠,使外網訪問使用標準 80/443 埠,對 Docker 多容器運行與網站部署非常關鍵。

Docker Compose 可以同時管理多個容器嗎?

可使用 docker-compose up -d 同時啟動 Compose 文件中所有容器,docker-compose down 停止並刪除,非常適合新手快速管理多容器環境。

    PAGE TOP