提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
在 Docker 中啟動 Nginx 并掛載配置文件到宿主機目錄
- 前言
- 一、創建宿主機目錄存放 Nginx 配置
- 1.1 在宿主機(如 Windows 或 Linux)上創建目錄,用于存放 Nginx 的配置文件:
- 1.2 啟動臨時 Nginx 容器(僅用于復制默認配置)
- 1.3 啟動正式 Nginx 容器并掛載配置
- 1.3.1 使用 -v 參數掛載宿主機目錄到容器內部:
- 1.3.2 參數說明:
- 1.4 驗證 Nginx 是否運行
- 1.5 修改配置文件并重載
- 1.6 示例:自定義一個靜態網站
- 1.6.1 在 /data/nginx/html 中創建 index.html:
- 1.6.2 訪問 http://localhost,將顯示自定義內容。
- 二、nginx常見配置文件放置位置
- 2.1 Nginx 容器默認的配置文件路徑
- 2.2 目錄結構建議
前言
nginx在開發應用中世紀作用非常廣泛,這篇文章分析在 Docker 中啟動 Nginx 并掛載配置文件到宿主機目錄的教程。
一、創建宿主機目錄存放 Nginx 配置
1.1 在宿主機(如 Windows 或 Linux)上創建目錄,用于存放 Nginx 的配置文件:
mkdir -p /data/nginx/conf # 配置文件目錄
mkdir -p /data/nginx/html # 靜態文件目錄(可選)
mkdir -p /data/nginx/logs # 日志目錄(可選)
1.2 啟動臨時 Nginx 容器(僅用于復制默認配置)
運行一個臨時 Nginx 容器,將其默認配置文件復制到宿主機:
docker run --name nginx-temp -d nginx
docker cp nginx-temp:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx-temp:/etc/nginx/conf.d /data/nginx/conf/
docker rm -f nginx-temp # 刪除臨時容器
現在宿主機 /data/nginx/conf/ 目錄下會有 Nginx 的默認配置文件。
1.3 啟動正式 Nginx 容器并掛載配置
1.3.1 使用 -v 參數掛載宿主機目錄到容器內部:
docker run -d \--name my-nginx \-p 80:80 \-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \-v /data/nginx/html:/usr/share/nginx/html \-v /data/nginx/logs:/var/log/nginx \nginx
1.3.2 參數說明:
-p 80:80:將宿主機的 80 端口映射到容器的 80 端口。
-v:掛載目錄或文件:
/data/nginx/conf/nginx.conf → 主配置文件。
/data/nginx/conf/conf.d → 子配置文件(如 default.conf)。
/data/nginx/html → 靜態網頁文件(可放置 index.html)。
/data/nginx/logs → 日志文件(access.log 和 error.log)。
1.4 驗證 Nginx 是否運行
訪問 http://localhost,應看到 Nginx 默認頁面。
檢查容器日志:
docker logs my-nginx
1.5 修改配置文件并重載
直接編輯宿主機的配置文件(如 /data/nginx/conf/nginx.conf),然后讓 Nginx 重新加載配置:
docker exec my-nginx nginx -s reload
無需重啟容器,配置即可生效。
1.6 示例:自定義一個靜態網站
1.6.1 在 /data/nginx/html 中創建 index.html:
<!DOCTYPE html>
<html>
<body><h1>Hello from Nginx!</h1>
</body>
</html>
1.6.2 訪問 http://localhost,將顯示自定義內容。
二、nginx常見配置文件放置位置
2.1 Nginx 容器默認的配置文件路徑
主配置文件:/etc/nginx/nginx.conf
虛擬主機配置(server blocks):/etc/nginx/conf.d/(通常以 .conf 結尾)
默認虛擬主機配置:/etc/nginx/conf.d/default.conf
2.2 目錄結構建議
/path/on/host/
├── nginx.conf # 主配置文件
├── conf.d/
│ └── default.conf # 虛擬主機配置
└── html/ # 靜態文件