如何在docker容器和主机之间共享数据?

时间:2017-01-19 21:36:03

标签: docker hyperlink directory containers host

我尝试在docker容器和主机之间共享数据,例如通过将参数-v / Users / name / Desktop / Tutorials:/ cntk / Tutorials添加到docker run命令,但我注意到它也删除了docker中的所有文件都包含在/ cntk / Tutorials中。

我的问题是如何制作相同的链接,而是将/ cntk / Tutorials中的所有文件复制到主机(位于/ Users / name / Desktop / Tutorials)

谢谢

3 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的take a look here。那是因为这就是Linux中的安装工作方式。

答案 1 :(得分:0)

说文件被删除是不正确的。它们仍然存在于底层映像中,但是在同一路径上安装另一个目录的行为隐藏了它们。它们存在,但在这种情况下无法访问。

您可以通过将卷添加到容器中的不同路径,然后将容器的文件复制到该路径来实现此目的。这样的事情。

使用与容器已有的路径不同的路径为您感兴趣的文件安装主机卷。

docker run -v /Users/name/Desktop/Tutorials:/cntk/Tutorials2 [...]

现在,执行一个命令,将已存在于docker镜像中的文件复制到来自外部主机的已装入卷中。

docker exec <container-id> cp -r /cntk/Tutorials /cntk/Tutorials2

答案 2 :(得分:0)

通过docker cp命令,您可以根据需要在主机和容器之间复制文件/文件夹:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

docker cp ContainerName:/home/data.txt . <== copy from container to host

docker cp ./test.txt ContainerName:/test.txt <== copy from host to container
docker cp ContainerName:/test.txt ./test2.txt <== copy from container to host

有关详细信息,请运行docker cp --help