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

将包含数据的Docker容器克隆到另一台主机,docker,containers,clone,Docker,Containers,Clone,我有两个正在运行的docker容器。 一个容器有MySQL和数据,另一个容器有Tomcat中的Java web应用程序 如何使用数据将MySQL容器克隆到另一个Docker主机 尝试了保存/加载方法。但是没有成功,因为没有数据 但是Java web应用程序容器正在工作docker保存容器的方法是使用。然而: 提交操作将不包括容器内装入的卷中包含的任何数据 因此,保存在卷中的数据不会成为提交的容器的一部分。MySQL docker映像就是这种情况,它将数据保存在/var/lib/MySQL下,并将

我有两个正在运行的docker容器。 一个容器有MySQL和数据,另一个容器有Tomcat中的Java web应用程序

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

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


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

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

提交操作将不包括容器内装入的卷中包含的任何数据

因此,保存在卷中的数据不会成为提交的容器的一部分。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…运行它。这将从旧容器装载数据文件夹,您应该得到一个包含数据的相同容器


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

    提交操作将不包括容器内装入的卷中包含的任何数据

    因此,保存在卷中的数据不会成为提交的容器的一部分。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…运行它。这将从旧容器装载数据文件夹,您应该得到一个包含数据的相同容器


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

      docker create -v /var/lib/mysql --name mysqldata mysql
    
    有关更多详细信息,请参阅此链接
    您是否尝试过创建数据卷容器?将卷目录装载到mysql容器

      docker create -v /var/lib/mysql --name mysqldata mysql
    
    有关更多详细信息,请参阅此链接

    docker提交然后保存/加载?将它们上载到另一个docker主机并从中下载?是源计算机-docker提交旧的newcontainer docker保存newcontainer>/tmp/newimage.tar目标计算机-docker加载docker提交docker提交然后保存/加载?将它们上载到另一个docker主机并从中下载?是源计算机-docker提交旧的newcontainer docker保存newcontainer>/tmp/newimage.tar目标计算机-docker加载docker commit您能否共享完整命令以在新容器中启动新容器host@Mahadevan启动mysql的命令位于中。对于您的问题,将
    -v./mysql data:/var/lib/mysql
    添加到run命令是相关的部分。我不知道您传递给容器的具体配置是什么。但是,
    docker run--name mysql-v./mysql data:/var/lib/mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql
    将提供一个包含数据的mysql容器。您可以共享完整的命令以在新容器中启动新容器吗host@Mahadevan启动mysql的命令位于中。对于您的问题,将
    -v./mysql data:/var/lib/mysql
    添加到run命令是相关的部分。我不知道您传递给容器的具体配置是什么。但是docker run--name mysql-v./mysql data:/var/lib/mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql将提供一个包含数据的mysql容器。