将文件夹中的所有文件“ docker cp”迁移到现有容器文件夹


70

尝试将文件从一个文件夹复制到现有容器文件夹时,我是否丢失了某些内容:

文件

我想将build(host)文件夹中的文件复制到容器中的html:

docker cp ./src/build b081dbbb679b:/usr/share/nginx/html

要清楚;我需要从主机复制到容器。

但是它将复制整个构建文件夹并将其复制到..html / build

我只需要将build文件夹中的文件(和子文件夹)复制到..html中。

我是否缺少某些内容,还是必须一个一个地复制每个文件?

Answers:


132

这是有关如何在docker中使用CP命令的说明,它将/.SRC_PATH

SRC_PATH does not end with /.
the source directory is copied into this directory

SRC_PATH does end with /.
the content of the source directory is copied into this directory

4
我喜欢这个答案。
Aerin

4
在Windows中不起作用。“文件名,目录名或卷标签语法不正确。”
SalamiArmy '18

3
请注意,这不仅/.是OP句子结尾处的句号,对某些人来说可能很明显。它必须/.在src路径的末尾才能复制目录中的所有文件,而不是目录本身。
Jimbo,

38

在容器和本地文件系统之间复制文件/文件夹的格式如下:

  • 将文件复制到容器内的文件夹:

    docker cp ./src/build/index.html ContainerName:/app/
    

    上面的示例显示index.html文件正在复制到app容器内的文件夹

  • 将所有文件复制到容器内的文件夹中:

    docker cp ./src/build/. ContainerName:/app/
    

    上例显示文件build夹中的所有文件都将复制到app容器中的文件夹


是否可以复制格式文件?例如docker cp ./src/build/*.txt ContainerName:/ app /
ambigus9 '18

1
注意Docker cp命令,没有任何您想要的命令
Sina Lotfi,

@ ambigus9一种可能的解决方案是将所有类似类型的文件移动到容器内的目录中,然后进行复制,您可以使用
docker

1
@Nabin可以解决!谢谢!!
ambigus9年

0

只需使用“。” 文件路径之后(在Linux中为点号,而不是“ *”),它将复制文件夹中的整个文件

泊坞窗cp / file / path / * containerId:/ filepath / nginx / html /

docker cp /file/path/. containerId:/filepath/nginx/html/

0

在Windows中,您可以遍历文件夹中的所有txt文件,并使用以下命令将它们复制到容器中:

for /r %i in (*.txt) do docker cp %i containerId:/blabla/bla/

你好!尝试为您的解决方案添加一个说明(甚至更好的是,添加指向引用所使用命令的文档的链接)
sab
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.