4

是否可以?

这是我的游牧工作文件

job "test-job" {
  ...
  group "test-group" {
    driver = "docker"
    config {
      image = "<image-name>"
    }
    ...
  }
}

我知道可以通过 Dockerfile 的 docker build 将文件复制到 Docker 映像。但我想避免从“图像名称”图像显式创建新的 Docker 图像。

我也知道可以将文件复制到从 Docker 映像派生的正在运行的 Docker 容器中。但由于我使用 Nomad 推出 Docker 映像并填充容器,因此如果 Nomad 可以复制(通过动态创建新的 Docker 层并复制文件)对我来说会很方便。

所以我想知道它是否以及如何可能?

4

1 回答 1

6

我不确定我是否理解这个问题......

如果你试图将 docker 镜像放到 nomad 代理上,那么 nomad 可以运行它。Nomad 会为你做这件事。

如果您尝试在部署过程中构建 docker 映像后将文件添加到...,Nomad 有一些选项...有点。

您可以使用卷(https://www.nomadproject.io/docs/drivers/docker.html#volumes)并安装一个包含文件的目录。

或者,您可以使用工件(https://www.nomadproject.io/docs/job-specification/artifact.html)并将其放入 /local (Nomad 为您创建此文件夹),我相信它暴露于 docker 容器默认情况下。

或者,另一种方式,就是让 Docker 容器在启动时去获取你需要的文件。很多人为此使用 consul-template,它现在内置于 Nomad ( https://www.nomadproject.io/docs/job-specification/template.html )。

这些方法实际上都没有创建一个新的 docker 镜像层,但是,在部署时没有办法做到这一点,应该在构建时完成。

于 2017-08-14T15:59:59.310 回答