将带有通配符的文件夹从docker容器复制到主机

时间:2016-03-04 21:11:40

标签: mongodb docker containers

创建一个备份脚本以将mongodb转储到容器中,我需要将容器外的文件夹复制,Docker cp似乎不适用于通配符:

docker cp mongodb:mongo_dump_* .

终端抛出以下内容:

  

来自守护进程的错误响应:lstat / var / lib / docker / aufs / mnt / SomeHash / mongo_dump_ *:没有这样的文件   或目录

是否有使用通配符和cp命令的解决方法?

2 个答案:

答案 0 :(得分:8)

您可以将mongo转储文件创建到容器内的文件夹中,然后复制该文件夹:这是一种解决方法。

似乎无法在docker cp命令https://github.com/docker/docker/issues/7710中使用通配符。

我认为处理您想要做的事情的最佳方法是使用docker卷,这样您就可以直接将容器中的文件保存到主机文件夹中,而无需使用任何其他命令:https://docs.docker.com/engine/userguide/containers/dockervolumes/

答案 1 :(得分:4)

我遇到了类似的问题,必须分两步解决:

$ docker exec <id> bash -c "mkdir /extract; mv /path/to/fileset* /extract"
$ docker cp <id>:/extract .