首頁 > 運維 > Nginx > 主體

docker運行nginx綁定設定檔失敗如何解決

WBOY
發布: 2023-05-17 09:34:05
轉載
943 人瀏覽過

直接執行啟動指令會失敗

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檔案都只需要在宿主機上的對應位置操作即可。

以上是docker運行nginx綁定設定檔失敗如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板