日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker運行nginx綁定配置文件失敗原因以及問題解決_docker

作者:渝涅 ? 更新時間: 2023-05-30 編程語言

直接執行啟動命令會失敗

pull鏡像:

docker pull nginx

然后執行啟動命令:

docker run -d -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/cache:/var/cache/nginx \
--restart=always nginx

如果/mydata/nginx/conf/nginx.conf文件不存在,這里會出現docker報錯,因為docker不允許綁定不存在的文件。

而直接新建一個空的/mydata/nginx/conf/nginx.conf雖然docker不會報錯,但是nginx卻無法在容器中正常啟動,通過docker ps -a命令查看,nginx會處于exit或者一直restart狀態,因為nginx的運行依賴于nginx.conf這個配置文件中的相關配置。

解決思路及辦法

先運行一個容器,不使用-v綁定,然后將容器中的相關文件直接copy到指定位置,之后就可以刪除容器,直接運行之前的啟動命令了。

具體操作如下:

首先創建好相關文件夾:

mkdir -p \
/mydata/nginx/html \
/mydata/nginx/conf \
/mydata/nginx/logs \
/mydata/nginx/cache

跑起來一個nginx容器:

docker run -d --name nginx nginx

復制配置文件和文件夾到宿主機指定目錄:

docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf.d

刪除原容器:

docker rm -f nginx

運行啟動命令,-v綁定相關卷:

docker run -d -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/cache:/var/cache/nginx \
--restart=always nginx

移動copy的conf.d目錄中的文件到正確的位置:

 mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d/
 rm -rf /mydata/nginx/conf.d

這樣nginx容器就可以正常運行,并且我們通過上面的操作將nginx.conf文件和conf.d目錄都映射到了宿主主機上,以后需要修改nginx.conf文件或者為conf.d添加.conf文件都只需要在宿主機上的對應位置操作即可。

總結

原文鏈接:https://blog.csdn.net/qq_43878324/article/details/122816736

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新