将包含数据的 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 卷。
有一个两步解决方案:
使用 docker commit
将容器提交到一个新镜像中,并将该镜像传输到另一台机器。
使用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/
我有两个 运行 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 卷。
有一个两步解决方案:
使用
docker commit
将容器提交到一个新镜像中,并将该镜像传输到另一台机器。使用
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/