【问题标题】:How can nomad' job from local docker imagesnomad 的工作如何从本地 docker 图像中获取
【发布时间】:2019-10-14 00:05:25
【问题描述】:

nomad docker image 将从 Docker Hub 获取。但我想使用一些本地图像。我如何使用主题。(我不想使用私人 repo)

例如我想使用本地图片test


> docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
test                        latest              da795ca8a32f        36 minutes ago      567MB
job "test" {
  datacenters = ["dc1"]

  group "example" {
    task "test" {
      driver = "docker"

      config {
        image = "test"
      }

      resources {
        cpu = 500
        memory = 256 
      }
    }
  }
}

错了!

【问题讨论】:

    标签: docker nomad


    【解决方案1】:

    我不确定这是否可以被视为答案或“黑客”。

    但是,如果您希望 Nomad 使用节点上已经存在的 docker 映像,则不得将映像标记为最新。

    为了测试,我将图像标记为IMAGE:local。这样 Nomad 如果存在就使用它,如果不存在则从远程拉取它。

    【讨论】:

      【解决方案2】:

      Nomad 现在 supports tar docker 图像。

      这是一个例子

      artifact {
        source = "http://path.to/redis.tar"
      }
      config {
        load = "redis.tar"
        image = "redis"
      }
      

      但是,tar 大小可能太大而无法弹性传输和配置。

      【讨论】:

        【解决方案3】:

        查看Nomad的源码herehere,好像不支持使用机器本地镜像。这是有道理的,因为在具有多个节点的集群环境中,调度程序需要能够获取图像,而不管作业分配到哪台机器。

        (一种可能的解决方法是在 Nomad 集群中运行注册服务,使用whichever storage backend 对您来说最方便)

        【讨论】:

          【解决方案4】:

          虽然@Miao1007 s answer 有效,但您需要注意一件事。您似乎不能使用标签 latest 或完全省略标签(参见讨论here)。您需要使用一些版本号标记您的 docker 构建,例如

          sudo docker build --tag dokr:1.0.0 .
          sudo docker save dokr:1.0.0 > dokr-1.0.0.tar
          
          then use the following in the job file
          artifact {
              source = "http://localhost:8000/dokr-1.0.0.tar"
          }
          config {
              load = "go-docker-dokr-1.0.0.tar"
              image = "go-docker-dokr:1.0.0"
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-01-22
            • 1970-01-01
            • 2023-02-08
            • 1970-01-01
            • 2016-03-03
            • 1970-01-01
            • 1970-01-01
            • 2020-09-06
            相关资源
            最近更新 更多