docker目錄掛載規則總結


經過測試,使用docker的目錄掛載,有以下規則,以nginx容器做測試

規則

1、若宿主機和默認容器都不存在目錄,則會創建所寫的對應目錄

命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

容器:

宿主機:

 

 2、若宿主機存在目錄,且里面有文件,而容器沒有目錄,則會將宿主機的目錄同步映射到容器

命令:docker run --name mynginx5 -p 101:80  -v /data/nginx:/etc/nginx1 -d  nginx:latest

容器:

 宿主機:

 

 3、若容器有目錄,且有文件,宿主機有目錄,沒有文件。  會將目錄覆蓋,以宿主目錄為主,掛載后的容器目錄為空。因為宿主機的目錄為空

命令:docker run --name mynginx777 -p 100:80  -v /data/nginx/html:/usr/share/nginx/html -d  nginx:latest

正常容器的目錄下有頁面:

 但是目錄被宿主機覆蓋:

 宿主機:

 

 可以運行成功:

訪問頁面:

 

總結

  docker的容器掛載機制,總的來說就是,沒有目錄就創建,以宿主機的文件目錄為主,直接覆蓋容器的目錄(就是將目錄復制到容器,包括目錄所有文件)

 

注意事項

  在進行容器目錄掛載的時候,若要設置配置文件的掛載,只需要掛載相對應的配置文件,且宿主機的配置文件需要有默認值;

在容器啟動時,會使用掛載的配置文件進行初始化,若文件找不到或為空,會導致啟動失敗。若掛載整個配置文件的目錄,會將容器默認的配置文件夾覆蓋

從而導致啟動失敗,因此只需要將要修改的配置文件進行掛載映射即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM