从远程 docker 容器复制文件

And*_*cko 12 ssh docker

我在远程计算机上有一个正在运行的容器。我通过 ssh 连接到机器。现在我想从容器中下载某个文件。有人可以给我一些如何实现这一目标的提示吗?谢谢。

Mic*_*ger 16

如果你想从 docker 容器下载文件到本地机器,你可以使用 Docker 本身来完成(不需要 SSH):

docker cp <containerId>:/path/to/file /host/target/path
Run Code Online (Sandbox Code Playgroud)

更新:我刚刚读到您已连接到远程容器。然后你可以使用 SCP 来实现:

scp user@host:/path/to/file /local/path
Run Code Online (Sandbox Code Playgroud)

  • 我认为这不是问题的正确答案。第一个命令只是将文件从容器复制到远程计算机,第二个命令将文件从远程计算机复制到本地。问题是如何将文件从远程容器复制到本地计算机。 (8认同)

leg*_*wie 6

听起来像是docker context的一个很棒的应用程序。

  • 创建一个上下文:docker context create myserver --docker "host=ssh://myserver.com"
  • 像往常一样复制文件docker --context myserver cp /local/path/file.txt containername:/path/in/container/

这也可以反向工作,将文件从远程 docker 容器获取到本地文件系统。最好为远程服务器定义基于密钥的访问。

另一个解决方案是创建一个卷,临时启动一个 docker 容器,将该卷导出到世界(ftp、smb、nfs,凡是你能想到的)。完成后,您可以将该卷安装到目标容器并有权访问这些文件。显然,这个反过来也能正常工作。