从主机和数据卷容器的Docker备份?

这里有一个基本的例子:

  • 带有从主机到/ var / www的已安装卷的nginx容器
  • mariadb容器与来自数据容器容器的数据(其又包含主机/命名容量)

    version: '3' services: dev-nginx: container_name: dev-nginx image: dev-nginx:latest ports: - '80:80' volumes: - ./www:/var/www/html dev-mariadb: container_name: dev-mariadb image: mariadb volumes: - dev-mariadb-data:/var/lib/mysql ports: - '3306:3306' dev-mariadb-data: container_name: dev-mariadb-data image: alpine:latest command: /bin/true volumes: # Named instead of anonymous volume to avoid data being 'jailed' in Docker VM on Mac / Windows - ./data/mariadb:/var/lib/mysql volumes: dev-mariadb-data: 

除了与许多容器共享单个卷的优点之外,文档中的大多数人似乎都build议将数据库数据存储在数据容器容器中(比如上面的mariadb,以及正式Docker文档中的这一段所述)是一个更好的select,而不是简单地坚持通过一个经典的主机< – >容器卷装载(如上面的nginx)。

所以,我的问题是:

假设我想将上面的容器和他们的数据从一台主机迁移到另一台。 为什么我不应该通过直接从标准卷的主机端进行归档/提取来备份和恢复我的数据库数据,或者有什么特别的原因可以推荐从数据卷容器中归档/提取?

我想MariaDB所期望的数据文件的权限和所有者可以从数据卷容器中更好地保​​存,但另一方面,当我从主机端编辑一些网页脚本到Nginx容器的www根时,不要在编辑过的文件上得到Nginx引发的任何权限问题…

那么,有人可以解释或发送链接? 找不到任何资源来解释优点和缺点。 谢谢。