我正在考虑使用Docker在持续集成(CI)服务器上构建依赖关系,这样我就不必在代理本身上安装所有运行时和库。
为了实现这一点,我需要将容器内部构建的构建工件复制回主机。这可能吗?
我正在考虑使用Docker在持续集成(CI)服务器上构建依赖关系,这样我就不必在代理本身上安装所有运行时和库。
为了实现这一点,我需要将容器内部构建的构建工件复制回主机。这可能吗?
当前回答
从DockerContainer到LocalMachine
$docker cp containerId:/sourceFilePath/someFile.txt C:/localMachineDestinationFolder
从LocalMachine到DockerContainer
$docker cp C:/localMachineSourceFolder/someFile.txt containerId:/containerDestinationFolder
其他回答
要将文件从容器复制到主机,可以使用以下命令
docker cp <containerId>:/file/path/within/container /host/path/target
下面是一个示例:
$ sudo docker cp goofy_roentgen:/out_read.jpg .
这里,高飞_伦琴是我从以下命令中获得的容器名称:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b4ad9311e93 bamos/openface "/bin/bash" 33 minutes ago Up 33 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp goofy_roentgen
您还可以使用(部分)容器ID。以下命令相当于第一个
$ sudo docker cp 1b4a:/out_read.jpg .
对于任何试图使用MySQL容器并在您的计算机上本地存储卷的人来说。我使用了这个问题的顶级回复中提供的语法。但必须使用MySQL特有的特定路径
docker cp imageIdHere:/var/lib/mysql pathToYourLocalMachineHere
如果您需要一个小文件,可以使用此部分
Docker容器内部
docker运行-it-p 4122:4122<container_ID>
nc -l -p 4122 < Output.txt
主机
nc 127.0.0.1 4122 > Output.txt
如果您没有正在运行的容器,只有一个图像,并且假设您只想复制一个文本文件,可以执行以下操作:
docker run the-image cat path/to/container/file.txt > path/to/host/file.txt
docker run -dit --rm IMAGE
docker cp CONTAINER:SRC_PATH DEST_PATH
https://docs.docker.com/engine/reference/commandline/run/https://docs.docker.com/engine/reference/commandline/cp/