【问题标题】:How can I run a docker container in ansible?如何在 ansible 中运行 docker 容器?
【发布时间】:2021-10-06 13:23:58
【问题描述】:

这是我的yml 文件

- name: Start jaegar daemon services
  docker: 
    name: jaegar-logz
    image: logzio/jaeger-logzio:latest
    state: started
    env:
      ACCOUNT_TOKEN: {{ token1 }}
      API_TOKEN: {{ token2 }}
    ports:
    - "5775:5775"
    - "6831:6831"
    - "6832:6832"
    - "5778:5778"
    - "16686:16686"
    - "14268:14268"
    - "14250:14250"
    - "9411:9411"

- name: Wait for jaegar services to be up
  wait_for: delay=60 port=5775
  • ansible 能否自行从 docker hub 注册表中发现 docker 镜像?
  • 这实际上是启动 jaegar 守护进程还是只是构建映像?如果是后者,如何运行容器?

docker 镜像来自这里 - https://hub.docker.com/r/logzio/jaeger-logzio

【问题讨论】:

    标签: docker ansible


    【解决方案1】:

    假设您使用的是 docker CE。

    你应该可以按照this documentation from ansible运行。但是请注意;如文档本身所指示,此模块在 ansible 2.4 及更高版本中已弃用。如果您想运行容器,请使用 docker_container 任务。这些链接可在所述文档链接中找到。

    就您的问题而言:

    ansible 能否自行从 docker hub 注册表中发现 docker 镜像?

    这取决于您将在其上运行它的客户端计算机。默认情况下,docker 将指向它自己的 docker hub 注册表,除非您专门登录到另一个存储库。如果您使用公共回购(它看起来像在您的链接中)并且客户能够在线访问所说的回购,那么您应该没问题。

    这实际上是启动 jaegar 守护进程还是只是构建映像?如果是后者,如何运行容器?

    根据docker_container documentation,您应该能够直接从此任务运行容器。这意味着你很高兴。 P.S.:该页面上的 image 参数告诉我们:

    用于创建容器的存储库路径和标记。如果图像是 not found 或 pull 为真,图像将从注册表中提取。 如果不包含标签,将使用“最新”。

    换句话说,只要对你的任务稍加调整就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多