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

Clone Docker containers with data to another Host

我有两个正在运作的码头集装箱。一个容器有MySQL数据,另一个容器在Tomcat有Java Web应用程序。

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

尝试了保存/加载方法。但是没有成功因为没有数据

但是Java Web应用程序容器正在工作。


保存容器的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 ...运行它。这将从旧容器装载数据文件夹,您应该得到一个包含数据的相同容器。