docker運行nginx綁定配置文件失敗原因以及問題解決
直接執(zhí)行啟動命令會失敗
pull鏡像:
docker pull nginx
然后執(zhí)行啟動命令:
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
文件不存在,這里會出現(xiàn)docker報錯,因為docker不允許綁定不存在的文件。
而直接新建一個空的/mydata/nginx/conf/nginx.conf
雖然docker不會報錯,但是nginx卻無法在容器中正常啟動,通過docker ps -a
命令查看,nginx會處于exit
或者一直restart
狀態(tài),因為nginx的運行依賴于nginx.conf
這個配置文件中的相關(guān)配置。
解決思路及辦法
先運行一個容器,不使用-v綁定,然后將容器中的相關(guān)文件直接copy到指定位置,之后就可以刪除容器,直接運行之前的啟動命令了。
具體操作如下:
首先創(chuàng)建好相關(guān)文件夾:
mkdir -p \ /mydata/nginx/html \ /mydata/nginx/conf \ /mydata/nginx/logs \ /mydata/nginx/cache
跑起來一個nginx容器:
docker run -d --name nginx nginx
復(fù)制配置文件和文件夾到宿主機指定目錄:
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綁定相關(guān)卷:
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
文件都只需要在宿主機上的對應(yīng)位置操作即可。
總結(jié)
到此這篇關(guān)于docker運行nginx綁定配置文件失敗原因以及問題解決的文章就介紹到這了,更多相關(guān)docker運行nginx綁定配置文件失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Docker中如何配置網(wǎng)絡(luò)并訪問互聯(lián)網(wǎng)
這篇文章主要介紹了在Docker中如何配置網(wǎng)絡(luò)并訪問互聯(lián)網(wǎng)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01使用Dockerfile構(gòu)建java web環(huán)境
用dockerfile構(gòu)建一個Java的web環(huán)境,主要分為2步,第一步是在鏡像中安裝jdk并配置環(huán)境變量,第二步是安裝tomcat,下面分步驟給大家詳細(xì)介紹,一起看看吧2016-12-12Docker Compose快速部署多容器服務(wù)實戰(zhàn)的實例詳解
使用 Docker Compose 可以輕松、高效的管理容器,它是一個用于定義和運行多容器 Docker 的應(yīng)用程序工具,本文給大家介紹Docker Compose快速部署多容器服務(wù)實戰(zhàn),感興趣的朋友一起看看吧2022-02-02Ubuntu使用Docker部署Redis并實現(xiàn)遠(yuǎn)程訪問本地數(shù)據(jù)庫全過程
這篇文章主要給大家介紹了關(guān)于Ubuntu使用Docker部署Redis并實現(xiàn)遠(yuǎn)程訪問本地數(shù)據(jù)庫的相關(guān)資料,Redis遠(yuǎn)程連接是指通過網(wǎng)絡(luò)連接到Redis服務(wù)器,從而可以在不同的機器問和操作Redis數(shù)據(jù)庫,需要的朋友可以參考下2024-03-03docker容器因報錯無法啟動問題的檢查及修復(fù)容器錯誤并重啟
隨著容器技術(shù)的發(fā)展,現(xiàn)在很多的應(yīng)用程序系統(tǒng)都會選擇使用docker容器進(jìn)行部署,下面這篇文章主要給大家介紹了關(guān)于docker容器因報錯無法啟動問題的檢查及修復(fù)容器錯誤并重啟的相關(guān)資料,需要的朋友可以參考下2023-03-03如何將本地構(gòu)建好的docker鏡像發(fā)布到dockerhub
這篇文章主要介紹了如何將本地構(gòu)建好的docker鏡像發(fā)布到dockerhub,文中通過圖文教程介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05