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 到 容器中。
-----------------------------------------------------------------------------