如何将多个容器的卷挂载到新容器

时间:2021-06-18 09:21:29

标签: docker docker-volume

我创建了一个 mysql 容器,然后我创建了一个 bookstack 容器,该容器连接到存储在第一个容器中的 MySQL 基础,如下指令:https://hub.docker.com/r/solidnerd/bookstack/

现在我想备份这两个容器的卷。在描述如何挂载一个容器的卷的所有说明中,但我在 docker 帮助中看到了挂载容器卷的可能性:

$ docker run --help | grep volumes-from
      --volumes-from list              Mount volumes from the specified container(s)

那么如何在不创建两个容器“backup1”和“backup2”的情况下,在单个命令中将这两个容器的所有卷挂载到 new 中?

我试过了:

# docker run --volumes-from competent_jackson bookstack_db -v $(pwd):/backup ubuntu bash -c <commands for backup>
Unable to find image 'bookstack_db:latest' locally
docker: Error response from daemon: pull access denied for bookstack_db, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

1 个答案:

答案 0 :(得分:0)

如果您使用多个容器,docker-compose 会非常方便,因为它可以简化容器和卷的管理。

无论如何,这取决于您如何创建和管理 docker 卷。既然您提到了选项 --volumes-from,那么请查看 docker backup, restore and migrate data volumes

上的详细说明

你总是可以使用类似的东西

$ docker run --rm  -v vol_id:/data -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /data

其中 vol_iddocker volume ls 的输出中列出