Clone Docker containers with data to another Host
我有两个正在运作的码头集装箱。一个容器有MySQL数据,另一个容器在Tomcat有Java Web应用程序。
如何使用数据将MySQL容器克隆到另一个Docker主机?
尝试了保存/加载方法。但是没有成功因为没有数据
但是Java Web应用程序容器正在工作。
- 码头工人docs.docker.com /发动机/提交commit命令行参考/然后/保存/加载?stackoverflow.com 5330223 23938978 / / /
- 上传和下载他们从另一个主机hub.docker.com搬运工吗?
- 是的newcontainer commit源机器老码头搬运工newcontainer >保存/甲氧苄啶/ newimage.tar机器负载目的地码头</甲氧苄啶/ newimage.tar码头运行的名字containername D P newcontainer 3306:3306
- 是的。docker commitgist.github.com 8d0e901bd21329d80cf2 thajeztah / /
保存容器的Docker方法是使用Docker提交。然而:
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 :/var/lib/mysql ./mysql-data从旧容器复制数据文件夹,并将mysql-data文件夹转移到新机器。启动新容器时在新主机上,使用docker run -v ./mysql-data:/var/lib/mysql ...运行它。这将从旧容器装载数据文件夹,您应该得到一个包含数据的相同容器。
- 您能在新主机上共享启动新容器的完整命令吗?
- @mahadevan启动mysql的命令在hub.docker.com//mysql中。对于您的问题,将-v ./mysql-data:/var/lib/mysql添加到run命令是相关的部分。我不知道您传递给容器的具体配置是什么。但是docker run --name mysql -v ./mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql会给mysql容器提供数据。
- 它的工作。谢谢。
- @亚门克评论很好,非常感谢。