才使用docker掛載的時候,按照網上教程安轉nginx的時候容器裏本身是可以運行的
但後來我想把主機文件關聯到容器裏按照操作一直報錯
文件夾掛載
若文件夾不存在,則先創建出文件夾(若爲多層文件夾,則遞歸創建)
用host上的文件夾內容覆蓋container中的文件夾內容
文件掛載:
docker 禁止用主機上不存在的文件掛載到container中已經存在的文件
文件掛載不會對同一文件夾下的其他文件產生任何影響
使用docker安裝nginx後
默認掛載html目錄: /usr/share/nginx/html
默認conf掛載目錄: /etc/nginx/conf.d/ 和 /etc/nginx/nginx.conf
如使用官方教程掛載方式:
docker run -p 80:80 --name mynginx -v $PWD/www: /usr/share/nginx/html -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -d nginx
在linux和windows上都會有報找不到mime.types文件,其實原因很明顯我們在主機下沒有這些文件
容器中 /etc/nginx 目錄下面還有很多其他的文件,直接掛載整個目錄進去,其他的文件便會隨着目錄的掛載而消失,所以會出現找不到mime.types文件
解決方案
1.先掛載文件夾:
docker run -p 80:80 --name mynginx -v $PWD/www: /usr/share/nginx/html -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -d nginx
然後把容器裏面的nginx.conf文件複製到主機conf目錄下載執行文件掛載
2.是把容器中 /etc/nginx 目錄中的其他內容也拷貝到要掛載的目錄裏,隨着目錄一起掛載進去
以上是個人在初期操作docker遇到的問題,和個人的一些理解