是否可以通过在docker容器内运行命令将文件复制到本地计算机。我知道docker cp <containerId>:container/file/path /host/file/path
但是,我的理解是这必须从docker容器外部运行。有没有办法从内部做到这类或类似的东西?
对于某些上下文,我有一个python脚本,它在docker容器中运行,类似于以下命令docker run -ti -rm --net=host buildServer:5000/myProgram /myProgram.py -h
。我想检索从该程序生成的文件,以便可以编辑它们。我可以在分离模式下运行docker容器,docker cp
所需的文件并关闭容器。但是,我希望能够从用户那里抽象出来。
答案 0 :(得分:1)
设计的Docker容器除非您通过卷装入明确提供,否则无法访问主机文件系统。因此,在您的示例中,您可以执行以下操作:
docker run -ti -v /tmp/data:/data -rm --net=host buildServer:5000/myProgram /myProgram.py -h
在容器中,/data
目录将映射到主机上的/tmp/data
。然后,您可以将文件复制到/data
以在主机上获取文件。
这假设你在Linux上运行Docker。如果您使用的是Windows或OS X,可能还有其他步骤,因为在这些环境中,Docker实际上是在Linux虚拟机上运行,并且卷访问可能会或可能不会按预期运行(我不会使用这些平台,所以我可以& #39;权威评论。)
了解更多信息: