使用卷挂载将文件从容器复制到本地

时间:2020-10-23 14:25:24

标签: docker kubernetes

尝试先将文件从容器复制到本地

因此,我有一个自定义Dockerfile,运行mkdir / test1 && touch /test1/1.txt,然后构建映像,并在本地路径/ root / test1中创建了一个空文件夹

和docker run -d --name container1 -v / root / test1:/ test1 Image:1

我试图将文件从容器复制到本地文件夹,以后我想使用它。但这是以我的本地文件夹为准,并使我的容器为空。

请问有人可以帮我吗?

例如,我已经构建了自己的自定义Jenkins文件,在启动该文件时,我需要从容器本地复制所有配置和更改,如果以后要删除我的容器并再次启动它,则不需要。无需从头开始配置。

谢谢

2 个答案:

答案 0 :(得分:1)

相对较新的--mount标志取代了-v/--volume安装。 (语法上)更容易理解,也更冗长(请参见https://docs.docker.com/storage/volumes/)。

您可以使用以下方式装载和复制:

docker run -i \
           --rm \
           --mount type=bind,source="$(pwd)"/root/test1,target=/test1 \
            /bin/bash << COMMANDS
                cp <files> /test1
            COMMANDS

您需要根据需要调整cp命令的位置。我不确定您是否需要"$(pwd)"部分。

答案 1 :(得分:0)

最重要的是,未经测试确认,我认为是

docker cp container1:/path/on/container/filename /path/on/hostmachine/

编辑:是的,应该起作用。此处也使用“ container1”,因为这是示例中提供的容器名称

通常它是这样的

要托管的容器

docker cp containername:/containerpath/ /hostpath/ 

主机到容器

docker cp /hostpath/ containername:/containerpath/