使用 Ansible 部署 Docker 镜像

Nah*_*hum 3 ansible docker

回顾了这个了不起的论坛后,我想是时候加入了……

我对部署多个 Docker 的剧本有疑问。

  • 我的Ansible版本是:2.5.1
  • 我的Python版本是 3.6.9
  • 我的 Linux 映像是来自站点的 18.04:OSboxes

Docker 服务已安装并运行在两台机器上。

根据本网站,您只需按照说明进行操作,一切都会完美运行。:)

https://www.techrepublic.com/article/how-to-deploy-a-container-with-ansible/

(我使用的剧本在上面的链接中)

但是在按照步骤操作并使用剧本之后,我遇到了这个错误。

TASK [Pull default Docker image] ******************************************************************************************************
fatal: [192.168.1.38]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (docker_image) module: source Supported parameters include: api_version, archive_path, buildargs, cacert_path, cert_path, container_limits, debug, docker_host, dockerfile, filter_logger, force, http_timeout, key_path, load_path, name, nocache, path, pull, push, repository, rm, ssl_version, state, tag, timeout, tls, tls_hostname, tls_verify, use_tls"}
Run Code Online (Sandbox Code Playgroud)

我会很高兴您对这个问题的支持。

cod*_*key 5

source: pull选项是在Ansible 2.8中添加的。由于您使用的是 Ansible 2.5.1,因此该选项不可用。

您可以使用更高版本,2.8 或更高版本,或者只是从您的剧本中删除该行,它应该可以工作:

- name: Pull default Docker image
  docker_image:
    name: "{{ default_container_image }}"
Run Code Online (Sandbox Code Playgroud)

您无法保证映像是从注册表中新提取的。如果这对您来说很重要,您可以先删除任何本地缓存的图像版本:

- name: Remove Docker image
  docker_image:
    name: "{{ default_container_image }}"
    state: absent

- name: Pull default Docker image
  docker_image:
    name: "{{ default_container_image }}"
Run Code Online (Sandbox Code Playgroud)