docker 安裝 nginx
阿新 • • 發佈:2021-10-15
使用Docker容器執行Nginx並實現反向代理
1.下載映象
# PS:這裡用的是 alipne 輕量級的映象.
docker pull nginx:alpine
2.先簡單的方式執行映象
docker run -d -p 80:80 --name nginx nginx:alpine
-p 80:80
: 將容器的 80 埠對映到宿主機的 80 埠上;-d
: 以後臺方式執行映象;--name
: 指定容器的名稱為 nginx;
3.複製相關配置檔案至宿主機
# 複製名稱為 nginx 容器中 /etc/nginx/nginx.conf 資料夾到宿主機的 /docker/nginx 路徑下 docker cp nginx:/etc/nginx/nginx.conf /docker/nginx # 複製名稱為 nginx 容器中 /etc/nginx/conf.d 檔案到宿主機的 /docker/nginx 路徑下 docker cp nginx:/etc/nginx/conf.d /docker/nginx
4.修改 Nginx 配置檔案,新增反向代理
在 conf.d/default.config
中新增反向代理相關配置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.0.1:8090; # 代理伺服器ip
5.刪除剛剛啟動的 Nginx 容器,新啟動一個
# 先刪除之前啟動的 nginx 容器: docker rm -f nginx # 執行 -p 替換 --net=host docker run -d \ -p 80:80 \ --name nginx \ -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /docker/nginx/conf.d:/etc/nginx/conf.d \ -v /docker/nginx/logs:/var/log/nginx \ nginx:alpine
-p 80:80
:將容器的 80 埠對映到主機的 80 埠;-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf
:將容器中的 /etc/nginx/nginx.conf 檔案掛載到宿主機中的 /docker/nginx/nginx.conf 檔案;-v /docker/nginx/conf.d:/etc/nginx/conf.d
:將容器中 /etc/nginx/conf.d 目錄掛載到宿主機中的 conf.d 目錄下;-v /docker/nginx/logs:/var/log/nginx
:將容器中的 /var/log/nginx 目錄掛載到宿主機中的 /docker/nginx/logs 目錄下, 用以檢視 Nginx 日誌;