1. 程式人生 > 其它 >docker 安裝 nginx

docker 安裝 nginx

使用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 日誌;