1. 程式人生 > >docker 掛載資料夾和檔案

docker 掛載資料夾和檔案

才使用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遇到的問題,和個人的一些理解