docker容器目錄掛載


簡介

我們可以在創建容器的時候,將宿主機的目錄與容器內的目錄進行映射,這樣我們就可以實現宿主機和容器目錄的雙向數據自動同步

作用

我們cp命令來實現數據傳遞,這種方式比較麻煩;

我們通過容器目錄掛載,能夠輕松實現代碼上傳,配置修改,日志同步等需求

命令格式

單目錄掛載

docker run -it -v /宿主機目錄:/容器目錄 鏡像名

多目錄掛載

docker run -it -v /宿主機目錄:/容器目錄 -v /宿主機目錄2:/容器目錄2 鏡像名

只讀目錄掛載

docker run -it -v  /宿主機目錄:/容器目錄:ro 鏡像名

關於掛載的本地目錄在容器中沒有執行權限的問題

注意

如果你同步的是多級目錄,可能會出現權限不足的提示;

這是因為Centos7中的安全模塊selinux把權限禁掉了,我們需要添加 --privileged=true 來解決掛載的目錄沒有權限的問題;

例:

docker run -it --privileged=true -v /home/soft/:/usr/soft:rw centos /bin/bash

例:單目錄掛載

先在宿主機建一個目錄,並創建一個文件,如:

在home下建了一個host_data,里面有a.txt文件

image-20210106142613054

運行容器並掛載目錄

docker run -it -v /home/host_data/:/home/client_data/ 8652b9f0cb4c

該容器掛載目錄為/home/client_data/

該文件同步出現

image-20210106143153095

這時候如果修改該文件,宿主機文件會同步修改,如修改

image-20210106143307898

保存退出

image-20210106143404815

同步修改了,這就是雙向數據同步,任何一方修改了另外一方都會跟着改動

多目錄同理

例:只讀目錄掛載

一般用在配置文件,容器內不讓其修改的情況

例:

 docker run -it -v /home/host_data/:/home/client_data/:ro 8652b9f0cb4c

進入該目錄進行編輯,會如圖所示

image-20210106144610468

不能編輯,但是宿主機可以編輯


免責聲明!

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



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