gpt4 book ai didi

docker - 如何使用历史数据将图像和容器移动到新服务器

转载 作者:行者123 更新时间:2023-12-02 20:19:30 27 4
gpt4 key购买 nike

图片 :

docker save -o /root/bkp1/docker_image_bkp ccn/ccn-server:1.0.4

容器:
docker export cef0dff04e70 > /root/bkp1/container.tar

在新服务器中:
docker load -i /root/pmmbkp1/docker_image_bkp

cat /root/bkp1/container.tar | docker import - ccdata

然后我创建并启动了它。但是我无法在新服务器中找到旧数据。如何将历史数据与容器一起移动?

最佳答案

当前(2016年9月),docker savedocker export甚至docker commit中的NONE都无法生成tar文件,该文件包含容器中安装的卷中包含的所有数据。

简而言之,如果要将卷数据从一台服务器移动到另一台服务器,最好的方法是使用共享文件系统存储Docker容器的数据。请检查Mount a shared-storage volume as a data volume文件。

一旦有了Docker集群的共享存储,就可以在原始服务器中停止旧容器,然后使用相同的配置在另一台服务器中启动新容器。旧容器和新容器都应安装与共享存储系统中现有卷相同的卷。

数据持久性仍然是Docker编排系统中的一个问题。但是另一个编排工具Kubernetes 1.4现在支持Persistent Volumes

编辑:

如果您的容器已经在运行,并且您想要移动它,则可以尝试执行以下步骤:

  • 使用docker savedocker commit将原始容器保存到图像中。然后将保存的图像加载到新服务器。
  • 检查原始容器的安装点,然后使用您的安装点配置查找本地卷文件。例如,使用docker inspect,您可以找到类似以下内容:

    “山”:[
    {
    "Name": "95d7a2419c62242149562d5098edcc7578754ae2f3c35a45c4d690f3c340905a",
    "Source": "/var/lib/docker/volumes/95d7a2419c62242149562d5098edcc7578754ae2f3c35a45c4d690f3c340905a/_data",
    "Destination": "/var/lib/mysql",
    "Driver": "local",
    "Mode": "",
    "RW": true,
    "Propagation": ""
    }

    ],

  • 在这里您可以看到挂载点是 "/var/lib/docker/volumes/95d7a2419c62242149562d5098edcc7578754ae2f3c35a45c4d690f3c340905a/_data"
  • 将本地卷文件复制到新服务器。
  • 在新服务器中启动一个新容器,新容器应将原始本地卷文件的副本安装到该容器中。您可以使用docker run命令的-v参数来实现。
  • 您可能需要考虑使用相同的配置在新服务器中启动新容器。 docker inspect命令可以帮助您找出容器的配置以及安装点配置。

  • 上述解决方案可能看起来很复杂且难看,但是除非您使用共享存储,否则没有其他方法可以轻松移动容器。

    关于docker - 如何使用历史数据将图像和容器移动到新服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796704/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com