community.docker.docker_image_pull 模块 – 从注册中心拉取 Docker 镜像

注意

此模块是 community.docker 集合(版本 4.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.docker。您需要进一步的要求才能使用此模块,请参阅 要求 了解详情。

要在 Playbook 中使用它,请指定:community.docker.docker_image_pull

community.docker 3.6.0 中的新功能

概要

  • 从注册中心拉取 Docker 镜像。

要求

在执行此模块的主机上需要以下要求。

  • Docker API >= 1.25

  • backports.ssl_match_hostname (在 Python 2 上使用 TLS 时)

  • paramiko (当使用 SSH 时,use_ssh_client=false)

  • pyOpenSSL (当使用 TLS 时)

  • pywin32 (当在 Windows 32 上使用命名管道时)

  • requests

参数

参数

注释

api_version

别名: docker_api_version

字符串

Docker 主机上运行的 Docker API 的版本。

默认为此集合和 Docker 守护程序支持的最新版本的 API。

如果未在任务中指定值,则将使用环境变量 DOCKER_API_VERSION 的值。如果未设置环境变量,将使用默认值。

默认值: "auto"

ca_path

别名: ca_cert, tls_ca_cert, cacert_path

路径

通过提供 CA 证书文件的路径,在执行服务器验证时使用 CA 证书。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 ca.pem

此选项名为 ca_cert,并在 community.docker 3.6.0 中重命名为 ca_path。旧名称已添加为别名,仍可使用。

client_cert

别名: tls_client_cert, cert_path

路径

客户端 TLS 证书文件的路径。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 cert.pem

client_key

别名: tls_client_key, key_path

路径

客户端 TLS 密钥文件的路径。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 key.pem

debug

布尔值

调试模式

选项

  • false ←(默认)

  • true

docker_host

别名: docker_url

字符串

用于连接到 Docker API 的 URL 或 Unix 套接字路径。 要连接到远程主机,请提供 TCP 连接字符串。例如,tcp://192.0.2.23:2376。 如果使用 TLS 加密连接,则该模块会自动将连接 URL 中的 tcp 替换为 https

如果任务中未指定该值,则将使用环境变量 DOCKER_HOST 的值。如果未设置环境变量,则将使用默认值。

默认值: "unix:///var/run/docker.sock"

name

字符串 / 必选

镜像名称。名称格式必须是 namerepository/nameregistry_server:port/name 之一。 - 名称可以选择性地包含标签,通过附加 :tag_name,或者包含摘要,通过附加 @hash:digest

platform

字符串

拉取镜像时请求此特定平台。

pull

字符串

确定何时拉取镜像。

如果为 always,将始终拉取镜像。

如果为 not_present,仅当当前 Docker 守护进程上不存在该名称的镜像,或者 platform 不匹配时,才会拉取镜像。

选项

  • "always" ← (默认)

  • "not_present"

tag

字符串

用于在拉取时选择镜像。默认为 latest

如果 name 参数格式为 name:tagimage@hash:digest,则 tag 将被忽略。

默认值: "latest"

timeout

整数

等待 API 响应的最长时间(以秒为单位)。

如果任务中未指定该值,则将使用环境变量 DOCKER_TIMEOUT 的值。如果未设置环境变量,则将使用默认值。

默认值: 60

tls

布尔值

通过使用 TLS 来保护与 API 的连接,而不验证 Docker 主机服务器的真实性。请注意,如果同时将 validate_certs 设置为 true,则它将优先。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS 的值。如果未设置环境变量,则将使用默认值。

选项

  • false ←(默认)

  • true

tls_hostname

字符串

在验证 Docker 主机服务器的真实性时,提供服务器的预期名称。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS_HOSTNAME 的值。如果未设置环境变量,则将使用默认值。

请注意,此选项在较旧版本中的默认值为 localhost。它已在 community.docker 3.0.0 中删除。

use_ssh_client

布尔值

在 community.docker 1.5.0 中添加

对于 SSH 传输,使用 ssh CLI 工具而不是 paramiko。

选项

  • false ←(默认)

  • true

validate_certs

别名:tls_verify

布尔值

通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS_VERIFY 的值。如果未设置环境变量,则将使用默认值。

选项

  • false ←(默认)

  • true

属性

属性

支持

描述

action_group

操作组: community.docker.docker, docker

module_defaults 中使用 group/dockergroup/community.docker.docker 来为此模块设置默认值。

check_mode

支持: 部分支持

当尝试使用 pull=always 拉取镜像时,该模块假定在检查模式下始终会发生更改。

当检查模式与差异模式结合使用时,拉取的镜像 ID 始终在差异中显示为 unknown

可以在 check_mode 下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持: 完全支持

当处于差异模式时,将返回已更改(或可能需要在 check_mode 中进行更改)的详细信息。

说明

注意

另请参阅

另请参阅

community.docker.docker_image_pull

从注册表拉取 Docker 镜像。

community.docker.docker_image_remove

删除 Docker 镜像。

community.docker.docker_image_tag

使用新名称和/或标签标记 Docker 镜像。

示例

- name: Pull an image
  community.docker.docker_image_pull:
    name: pacur/centos-7
    # Select platform for pulling. If not specified, will pull whatever docker prefers.
    platform: amd64

返回值

通用返回值在此处记录 此处,以下是此模块特有的字段

描述

image

字典

受影响镜像的镜像检查结果。

返回: 成功

示例: {}

作者

  • Felix Fontein (@felixfontein)