0
点赞
收藏
分享

微信扫一扫

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件


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

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_docker

所创建的容器中  /devilmaycry 路径下文件:

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_文件路径_02

宿主机 host  的   /home/devilmaycry  路径下的文件:

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_docker_03

可以看到文件的挂载成功。

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容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_文件路径_04

 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容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_数据_05

拷贝到的主机文件路径下,其中文件有:

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_docker_06

容器中的文件路径下,其中文件有:

docker容器挂载host宿主机的本地目录,docker容器与宿主机之间互相拷贝文件_文件路径_07

拷贝成功。

将主机中文件拷贝到docker容器中:

与上面的类似,为:

docker cp      /host_file_path     <containerId>:/container_file_path

将主机文件   copy   到  容器中。   


举报

相关推荐

0 条评论