创建一个备份脚本以将mongodb转储到容器中,我需要将容器外的文件夹复制,Docker cp
似乎不适用于通配符:
docker cp mongodb:mongo_dump_* .
终端抛出以下内容:
来自守护进程的错误响应:lstat / var / lib / docker / aufs / mnt / SomeHash / mongo_dump_ *:没有这样的文件 或目录
是否有使用通配符和cp命令的解决方法?
答案 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 .