我有两个正在运行的docker容器。 一个容器有MySQL数据,另一个容器有Tomcat中的Java Web应用程序。
如何使用数据将MySQL容器克隆到另一个Docker主机?
尝试保存/加载方法。但没有成功,因为没有数据
但Java Web应用程序容器正在运行
答案 0 :(得分:5)
docker保存容器的方法是使用docker commit。但是:
提交操作不包括容器内安装的卷中包含的任何数据。
因此,保存在卷中的数据不会是提交容器的一部分。这是MySQL docker镜像的情况,它将数据保存在/var/lib/mysql
下并将其声明为docker volume。
有两步解决方案:
使用docker commit
将容器提交到新图像并将此图像传输到另一台计算机。
使用docker cp <mysql-container>:/var/lib/mysql ./mysql-data
从旧容器复制数据文件夹,并将mysql-data
文件夹传输到新计算机。启动新容器时
在新主机上,使用docker run -v ./mysql-data:/var/lib/mysql ...
运行它。这将从旧容器挂载数据文件夹,您应该获得一个包含数据的相同容器。
答案 1 :(得分:0)
您是否尝试过创建数据卷容器?将卷目录挂载到mysql容器
Animal
请参阅此链接以获取更多详细信息 https://www.melvinvivas.com/using-docker-data-volume-with-a-mysql-container/