網站首頁 編程語言 正文
直接執行啟動命令會失敗
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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-02-19 DevTools 無法加載 SourceMap 錯誤:狀態代碼 404,net::ERR_HTTP_
- 2022-03-03 編輯時使用Object.assign({},row) el-form表單無法編輯 el-select
- 2022-01-22 Springboot + Redis 哨兵模式
- 2024-04-07 springboot后端接收前端傳數組參數方法
- 2023-11-16 python list 刪除列表中某個元素的3種方法;附加刪除numpy數組中的指定索引元素的方法
- 2023-12-11 注解開發Mybatis
- 2022-05-22 docker部署訪問postgres數據庫的實現方法_docker
- 2023-12-22 CSS濾鏡(filter)
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支