【问题标题】:Docker volume backup error: Tar: MYCONTAINER_VOLUME: Cannot stat: No such file or directoryDocker卷备份错误:Tar:MYCONTAINER_VOLUME:无法统计:没有这样的文件或目录
【发布时间】:2019-05-11 01:59:21
【问题描述】:

我正在尝试按照 docker 文档中的说明备份我的卷:https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes

我正在运行带有卷路径的命令:

docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/docker/volumes/MYCONTAINER_VOLUME

...并且还尝试仅使用我的卷名

docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar MYCONTAINER_VOLUME

但无论我收到什么错误,例如:tar: MYCONTAINER_VOLUME: Cannot stat: No such file or directory

创建此卷并使用docker-compose 链接到容器,并且它使用卷的本地驱动程序。

当我运行docker volume ls 时,我得到:

DRIVER              VOLUME NAME

local               MYCONTAINER_VOLUME

谁能告诉我我做错了什么?

【问题讨论】:

    标签: docker


    【解决方案1】:

    我发现了问题所在 -

    该命令的最后一部分应该是安装在 CONTAINER 中的卷的路径,而不是卷在 HOST 上的路径。

    所以基本上,这个命令的公式应该是:

    docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/MY_BACKUP.tar /PATH/INSIDE/CONTAINER/TO/VOLUME/data
    

    ...这将在主机的当前目录中创建MY_BACKUP.tar

    另外,如果在我的情况下类似于 postgres,请确保在归档卷之前停止容器。

    然后,如果您使用 docker-compose 来恢复卷(因为我也遇到了这个问题,因为文档不是特定于以这种方式创建的预先存在的容器/卷)

    1) 停止容器

    2) 确保 MY_BACKUP.tar 在 HOST 的项目根目录中

    3) 运行

    docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu bash -c "cd / && tar xvf /backup/MY_BACKUP.tar
    

    4) 重启容器

    希望这对某人有所帮助,我当然愿意接受任何简化这一点的想法。

    【讨论】:

    • 很好的反馈,比我的回答更准确。赞成。
    • 谢谢!我认为,文档没有帮助 docker 肯定有一个学习曲线。这不会是我遇到的第一个 HOST:CONTAINER 混音。
    【解决方案2】:

    The documentation 假设您的容器确实有一个与您的容器相关联的卷。
    含义:你的container was started with a volume
    示例:

    $ docker run -d \
      --name devtest \
      --mount source=myvol2,target=/app \
      nginx:latest
    

    至少检查一下您是否确实创建了卷:

    docker volume ls
    

    【讨论】:

    • 感谢您的检查 - 我将docker volume ls 的结果添加到我的问题中
    • 另外,不确定这是否有帮助,但这是一个创建并使用docker-compose链接到容器的卷
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2021-07-10
    相关资源
    最近更新 更多