docker容器掛載host宿主機的本地目錄,docker容器與宿主機之間互相拷貝文件
參考於:
https://blog.csdn.net/weixin_37773766/article/details/80702926
------------------------------------------------------
1. 創建容器時指定將主機目錄掛載到容器中:
docker run -it -v /home/devilmaycry/:/devilmaycry --name devil_pytorch e30c140136d1 /bin/bash
其中,
-v /home/devilmaycry/:/devilmaycry 是將主機目錄/home/devilmaycry/ 掛載到容器中的 /devilmaycry 路徑下。
--name devil_pytorch 是將所創建的容器命名為 devil_pytorch
e30c140136d1 這里是創建容器所依據的鏡像, 是鏡像的Id
所創建的容器中 /devilmaycry 路徑下文件:
宿主機 host 的 /home/devilmaycry 路徑下的文件:
可以看到文件的掛載成功。
---------------------------------------------------------------------
2. 數據卷 方式
該方式的大致意思就是:創建一個容器時使用其他已有容器的掛載信息。這里的數據卷容器我們假設名為 devil_pytorch,創建方式為上述的方式1,devil_pytorch容器在創建時已經將主機 /home/devilmaycry 文件掛載到了容器的 /devilmaycry 路徑下, 這時我們創建容器 devil_pytorch_2 , 創建方式具體如下:
docker run -it --volumes-from devil_pytorch --name devil_pytorch_2 e30c140136d1 /bin/bash
--name devil_pytorch_2 是將所創建的容器命名為 devil_pytorch_2
e30c140136d1 這里是創建容器所依據的鏡像, 是鏡像的Id
這里需要區分的參數為:
--volumes-from devil_pytorch
為新創建的容器指定數據卷。意思就是說新創建的容器其文件掛載的映射關系與已創建容器devil_pytorch相同,
這里就是同樣將主機 /home/devilmaycry 文件掛載到新創建容器的 /devilmaycry 路徑下。
可以看到新創建容器的 /devilmaycry下文件與主機的 /home/devilmaycry 下相同:
-----------------------------------------------
docker容器與宿主機之間互相拷貝文件
使用 docker cp 命令, 該命令的使用方式與 標准的linux命令 cp 大致相同。
將docker中文件拷貝到主機中:
docker cp <containerId>:/container_file_path /host_file_path
docker cp 977586e250be:/examples /tmp/
977586e250be 為容器Id,
/examples 為容器內文件路徑,
/tmp/ 為拷貝到的主機文件路徑。
拷貝到的主機文件路徑下,其中文件有:
容器中的文件路徑下,其中文件有:
拷貝成功。
----------------------------------------------
將主機中文件拷貝到docker容器中:
與上面的類似,為:
docker cp /host_file_path <containerId>:/container_file_path
將主機文件 copy 到 容器中。
-----------------------------------------------------------------------------