Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何使用历史数据将图像和容器移动到新服务器_Docker - Fatal编程技术网

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

Docker 如何使用历史数据将图像和容器移动到新服务器,docker,Docker,图片: 容器: docker save -o /root/bkp1/docker_image_bkp ccn/ccn-server:1.0.4 在新服务器中: docker export cef0dff04e70 > /root/bkp1/container.tar 我创造并开始了它。但我无法在新服务器中找到旧数据。如何将历史数据与容器一起移动 目前(2016年9月),docker save或docker export甚至docker commit都无法生成包含容器内装入的卷中包含的任

图片:

容器:

docker save -o /root/bkp1/docker_image_bkp ccn/ccn-server:1.0.4
在新服务器中:

docker export cef0dff04e70 > /root/bkp1/container.tar
我创造并开始了它。但我无法在新服务器中找到旧数据。如何将历史数据与容器一起移动

目前(2016年9月),
docker save
docker export
甚至
docker commit
都无法生成包含容器内装入的卷中包含的任何数据的tar文件

简而言之,如果您想将卷数据从一台服务器移动到另一台服务器,最好的方法是使用共享文件系统存储docker容器的数据。请检查一下文件

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

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

编辑:

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

  • 使用
    docker Save
    docker commit
    将原始容器保存到图像中。然后将保存的映像加载到新服务器

  • 检查原始容器的装载点,然后查找具有装载点配置的本地卷文件。例如,使用
    docker inspect
    ,您可以找到类似的内容:

    “坐骑”:[

    ],

  • 在这里您可以看到挂载点是
    “/var/lib/docker/volumes/95D7A2419C62242149562D5098EDCC7578754AE2F3C335A45C4D690F3C340905A/_data”

  • 将本地卷文件复制到新服务器

  • 在新服务器中启动一个新容器,新容器应在其中装载原始本地卷文件的副本。您可以使用
    docker run
    命令的
    -v
    参数来实现它

  • >p>您可能需要考虑使用相同的配置来启动新服务器中的新容器。code>docker inspect命令可以帮助您找到容器的配置以及装载点配置

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

    目前(2016年9月),
    docker save
    docker export
    甚至
    docker commit
    都无法生成包含容器内装入的卷中所包含的任何数据的tar文件

    简而言之,如果您想将卷数据从一台服务器移动到另一台服务器,最好的方法是使用共享文件系统存储docker容器的数据。请检查一下文件

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

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

    编辑:

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

  • 使用
    docker Save
    docker commit
    将原始容器保存到图像中。然后将保存的映像加载到新服务器

  • 检查原始容器的装载点,然后查找具有装载点配置的本地卷文件。例如,使用
    docker inspect
    ,您可以找到类似的内容:

    “坐骑”:[

    ],

  • 在这里您可以看到挂载点是
    “/var/lib/docker/volumes/95D7A2419C62242149562D5098EDCC7578754AE2F3C335A45C4D690F3C340905A/_data”

  • 将本地卷文件复制到新服务器

  • 在新服务器中启动一个新容器,新容器应在其中装载原始本地卷文件的副本。您可以使用
    docker run
    命令的
    -v
    参数来实现它

  • >p>您可能需要考虑使用相同的配置来启动新服务器中的新容器。code>docker inspect命令可以帮助您找到容器的配置以及装载点配置


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

    感谢您分享共享存储的详细信息。但在我的例子中,docker的映像、容器和数据都在服务器的本地磁盘中。如何将数据移动到新服务器?@user1638016 Hi,很抱歉稍后的回复,我更新了我的答案请查看。Hi Haoming,你能分享我用来链接数据容器装载源的命令吗。我已将数据容器复制到新服务器(/var/lib/docker/volumes/7362bc5fa96cbc2ca9572b6c4890e54be519c1ad516af5f804c28ec7e7fab69/_data)不确定如何将其与容器一起安装。(docker create-v/opt/nms/data——名称nms数据nms/nms服务器:2.0.8/bin/true)(docker create-v/opt/nms/data——名称nms数据nms/nms服务器:2.0.8/bin/true)docker inspect在新服务器“源”上显示不同的源“/var/lib/docker/volumes/0f34b5ae21d3794ef62bcb8ad42b8f2559450f969aca90174a5d07f7c6d9749/”检查此项
    -v/src/webapp:/opt/webapp
    其中
    /src/webapp
    是您的本地目录,
    /opt/webapp
    是您容器中的目录。
    /src/webapp
    中的任何文件都可以在容器的
    /opt/webapp
    文件夹中访问。感谢您共享共享存储的详细信息
    docker load -i /root/pmmbkp1/docker_image_bkp
    
    cat /root/bkp1/container.tar | docker import - ccdata
    
    {
        "Name": "95d7a2419c62242149562d5098edcc7578754ae2f3c35a45c4d690f3c340905a",
        "Source": "/var/lib/docker/volumes/95d7a2419c62242149562d5098edcc7578754ae2f3c35a45c4d690f3c340905a/_data",
        "Destination": "/var/lib/mysql",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }