将文件从 docker 容器复制到主机

sub*_*ash 6 docker

有没有其他方法可以docker通过在容器中运行命令来将文件或文件夹从容器复制到主机?

我阅读的所有其他问题都建议docker cp在主机上运行命令。

azb*_*cea 7

也可能是从 Docker 容器复制文件到主机的重复

您是对的,对于在容器和主机之间复制文件,您将始终获得 2 个选项:

选项 1:使用docker cp <containerid>:/<path> <host-path>更多

不能从容器运行这个命令的原因是因为封装(容器化原则)。因此,依赖是单向的。主机知道容器,容器不知道主机。打个比方,想想船上的真正集装箱,一旦集装箱关闭,你就不能将货物从集装箱从集装箱内移到船上——除非船上有人决定打开它(当然,除非你的集装箱没有'没有妥协,他们在容器外壳上打了一个洞)

选项 2:使用docker volumes(推荐 -更多

在这种情况下,您mount<host-path>容器(执行过程中docker run-或者是你的业务流程的一部分),并运行该命令是:cp <from> <to>。容器甚至不知道实际上主机上的真实路径

还有一个问题why do you need to copy ?。知道容器中的任何路径已经在主机上,您可能会发现该文件/文件夹路径使用docker inspect <containerid>并从/var/lib/docker/containers/<containerid>/<path>. 因此,给出你想要复制什么类型的数据、出于什么原因以及在什么环境(DEV/PROD)中的整个上下文可能会给你其他选择。