【问题标题】:Moving my Docker application which is a collection of containers移动我的 Docker 应用程序,它是容器的集合
【发布时间】:2020-08-09 11:45:52
【问题描述】:

我一直在阅读有关将 Docker 应用程序迁移到另一台机器的各种文章。所有文章都在谈论“docker commit”或“export/import”。这只是指单个Container,它首先转换为Image,然后我们在新机器上进行“docker run”。

但我的应用程序通常由多个容器组成,因为我遵循隔离不同服务的最佳实践。

问题是,我如何迁移或移动所有已配置为连接在一起并作为一个整体运行的容器。我不知道“群”是否是正确的术语。

我看到的替代方案是 - 只需将“docker-compose”和“dockerfile”复制到新机器中并重新设置架构。然后我复制所有的应用程序文件。它运行良好。

【问题讨论】:

    标签: docker migration containers docker-swarm


    【解决方案1】:

    我的目的,当然不是唯一的解决方案,但它相当不错:

    1. 在一台机器上创建 docker 镜像(您需要 Dockerfile)

    2. 将图像上传到 docker 注册表(您可以使用自己的 docker hub 帐户,或者可能是 nexus 或其他)

      2.1。还建议使用版本标记您的图像,并保护使用相同版本和不同代码覆盖图像。

    3. 使用 docker-compose(建议为所有需要交互的 docker 定义一个 docker 网络)来部署(docker-compose up 就像几个docker run,但更容易维护。)

    4. 您可以在多台机器上部署,只需使用相同的 docker-compose.yml 来部署和访问您的注册表。

      4.1。部署可以在单个主机、swarm、kubernetes 中完成...(为此,您必须将 docker-compose.yml 转换为 kubectl yml 文件)

    【讨论】:

      【解决方案2】:

      我同意 docker-compose 的建议。并将您的图像存储在注册表或本地计算机上。 docker compose 文件中的每个部分都将按服务分开。每个服务都必须以 YAML 格式编写。

      我相信你会想要版本 3 YAML。然后从那里你编写如下代码。但每项服务都会使用您注册表中或本地文件夹中的 Dockerfile 映像。

      version : '3'
      
      services: 
      
        drupal:
          image:
      
               ......ports, volumes, etc 
      
         postgres:
           image: 
      
                 ......ports, volumes, etc 
      
      

      披露:我在 Udemy 上参加了 Bret Fisher 的 Docker 课程。

      【讨论】:

        猜你喜欢
        • 2017-05-17
        • 2021-01-02
        • 2023-02-09
        • 1970-01-01
        • 2019-08-05
        • 1970-01-01
        • 2020-01-27
        • 2018-03-12
        • 2020-08-10
        相关资源
        最近更新 更多