将数据从docker-compose自动创建的卷复制到新的外部卷

问题描述

docker-compose中使用卷时,docker将创建一个卷,并将该卷名附加到目录名:[directory containing yml]_[volume name]

/var/containers/my-important-server-v0.23/docker-compose.yml

volumes:
    server-db:
    # Volume name: my-important-server-v0.23_server-db

现在,由于某种原因移动并重命名包含docker-compose.yml的目录时,它将创建一个新卷,其中新目录以卷名开头。

为了防止这种情况并允许多个撰写文件使用同一卷,我们应该手动创建一个卷:

docker volume create server-db

volumes:
    server-db:
        external: true

我们如何将文件从my-important-server-v0.23_server-db传输到server-db


这是我尝试过的并且似乎很有意义的方法,但是它没有按预期工作。

docker volume create server-db
OLD=$(docker volume inspect my-important-server-v0.23_server-db | jq -r .[0].Mountpoint)
NEW=$(docker volume inspect server-db | jq -r .[0].Mountpoint)
sudo rsync -va $OLD/ $NEW/

现在是问题所在。包含MariaDB文件的目录具有不同的大小。显然,您不能像这样简单地复制文件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)