将包含数据的 Docker 个容器克隆到另一台主机

Clone Docker containers with data to another Host

我有两个 运行 docker 个容器。 一个容器有 MySQL 个数据,另一个容器在 Tomcat.

中有 Java 个 Web 应用程序

如何使用数据将 MySQL 容器克隆到另一个 Docker 主机?

尝试了Save/Load方法。但没有成功,因为没有数据

但 Java Web 应用程序容器正在运行

docker 保存容器的方法是使用 docker commit。然而:

The commit operation will not include any data contained in volumes mounted inside the container.

因此保存在卷中的数据不会成为提交容器的一部分。 MySQL docker 图像就是这种情况,它将数据保存在 /var/lib/mysql 下并将其声明为 docker 卷。

有一个两步解决方案:

  1. 使用 docker commit 将容器提交到一个新镜像中,并将该镜像传输到另一台机器。

  2. 使用docker cp <mysql-container>:/var/lib/mysql ./mysql-data从旧容器复制数据文件夹并将mysql-data文件夹传输到新机器。启动新容器时 在新主机上,运行 它使用 docker run -v ./mysql-data:/var/lib/mysql ...。这将从旧容器挂载数据文件夹,您应该会得到一个包含数据的相同容器。

您是否尝试过创建数据卷容器?将卷目录挂载到 mysql 容器

  docker create -v /var/lib/mysql --name mysqldata mysql

请参阅此 link 了解更多详情 https://www.melvinvivas.com/using-docker-data-volume-with-a-mysql-container/