community.docker.docker_image 模块 – 管理 Docker 镜像
注意
此模块是 community.docker 集合 (版本 4.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.docker
。您需要其他要求才能使用此模块,有关详细信息,请参阅 需求。
要在 playbook 中使用它,请指定:community.docker.docker_image
。
概要
构建、加载或拉取镜像,使镜像可用于创建容器。还支持标记镜像、推送镜像以及将镜像存档到
.tar
文件。
需求
执行此模块的主机需要以下要求。
Docker API >= 1.25
backports.ssl_match_hostname(在 Python 2 上使用 TLS 时)
paramiko(当使用 SSH 且
use_ssh_client=false
时)pyOpenSSL(在使用 TLS 时)
pywin32(在 Windows 32 上使用命名管道时)
requests
参数
参数 |
注释 |
---|---|
Docker 主机上运行的 Docker API 的版本。 默认为此集合和 docker 守护程序支持的最新 API 版本。 如果任务中未指定该值,则将使用环境变量 默认值: |
|
与 |
|
指定用于构建镜像的选项。 |
|
提供一个 Docker 期望值为字符串。为方便起见,任何非字符串值都将转换为字符串。 |
|
要考虑作为缓存源的镜像名称列表。 |
|
应用于构建过程中创建的每个容器的限制字典。 |
|
允许执行的 CPU。 例如, |
|
CPU 份额(相对权重)。 |
|
构建的内存限制,格式为 省略单位默认为字节。 在 community.docker 3.6.0 之前,不允许使用单位。 |
|
构建的总内存限制(内存 + 交换),格式为 省略单位默认为字节。 在 community.docker 3.6.0 之前,不允许使用单位,也不允许使用特殊值 |
|
与 这也可以包含相对路径(相对于 |
|
要添加到构建容器的 除了 IP 地址外,还可以使用特殊值 |
|
镜像构建操作期间 HTTP 请求的超时时间。请提供一个正整数,表示秒数。 |
|
键值对字典。 |
|
用于 |
|
构建镜像时不使用缓存。 选项
|
|
与 state ‘present’ 一起使用以构建镜像。将是包含构建镜像的上下文和 Dockerfile 的目录的路径。 |
|
格式为 |
|
构建镜像时,下载 Dockerfile 中 FROM 镜像的任何更新。 选项
|
|
构建后移除中间容器。 选项
|
|
省略单位默认为字节。如果完全省略大小,Docker 守护程序将使用 |
|
构建镜像时,指定中间构建阶段的名称作为最终镜像的最终阶段。 |
|
如果设置为 选项
|
|
通过提供 CA 证书文件的路径来执行服务器验证时使用 CA 证书。 如果任务中未指定该值,并且设置了环境变量 此选项以前称为 |
|
客户端 TLS 证书文件的路径。 如果任务中未指定该值,并且设置了环境变量 |
|
客户端 TLS 密钥文件的路径。 如果任务中未指定该值,并且设置了环境变量 |
|
调试模式 选项
|
|
用于连接到 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果任务中未指定该值,则将改用环境变量 默认值: |
|
与 如果要加载镜像,请设置 |
|
镜像名称。名称格式之一: 请注意,镜像 ID(哈希值)仅支持 |
|
指定用于拉取镜像的选项。 |
|
拉取镜像时,请求此特定平台。 请注意,此值不用于确定是否需要拉取镜像。不过,这将来可能会在次要版本中更改。 |
|
与 预期格式为 如果 |
|
确定模块将尝试从中检索镜像的位置。 使用 使用 使用 使用 选项
|
|
对镜像的状态进行断言。 当 当 选项
|
|
使用 TLS 加密与 API 的连接,但不验证 Docker 主机服务器的真实性。请注意,如果 如果任务中未指定此值,则将使用环境变量 选项
|
|
验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 如果任务中未指定此值,则将使用环境变量 请注意,此选项在较旧版本中默认值为 |
|
对于 SSH 传输,使用 选项
|
|
使用 TLS 加密与 API 的连接并验证 Docker 主机服务器的真实性。 如果任务中未指定此值,则将使用环境变量 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.docker.docker, docker |
在 |
|
支持:部分 尝试拉取镜像时,模块假定在检查模式下始终已更改。 |
可以在 |
|
支持:不支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 |
备注
注意
镜像构建是使用 Docker 守护程序的 API 完成的。无法通过这种方式使用 BuildKit/buildx。使用 community.docker.docker_image_build 使用 BuildKit 构建镜像。
通过为每个任务提供参数或定义环境变量来连接到 Docker 守护程序。您可以定义
DOCKER_HOST
、DOCKER_TLS_HOSTNAME
、DOCKER_API_VERSION
、DOCKER_CERT_PATH
、DOCKER_TLS
、DOCKER_TLS_VERIFY
和DOCKER_TIMEOUT
。如果您使用的是 docker machine,请运行产品附带的设置环境的脚本。它将为您设置这些变量。有关更多详细信息,请参阅 https://docs.docker.net.cn/machine/reference/env/。此模块**不**使用 Docker SDK for Python 与 Docker 守护程序通信。它使用来自 Docker SDK 或包含在此集合中的 Python 代码。
另请参阅
另请参阅
- community.docker.docker_image_build
使用 Docker buildx 构建 Docker 镜像。
- community.docker.docker_image_export
导出(存档)Docker 镜像。
- community.docker.docker_image_info
检查 Docker 镜像。
- community.docker.docker_image_load
从存档加载 Docker 镜像。
- community.docker.docker_image_pull
从注册表拉取 Docker 镜像。
- community.docker.docker_image_push
将 Docker 镜像推送到注册表。
- community.docker.docker_image_remove
删除 Docker 镜像。
- community.docker.docker_image_tag
使用新的名称和/或标签标记 Docker 镜像。
示例
- name: Pull an image
community.docker.docker_image:
name: pacur/centos-7
source: pull
# Select platform for pulling. If not specified, will pull whatever docker prefers.
pull:
platform: amd64
- name: Tag and push to docker hub
community.docker.docker_image:
name: pacur/centos-7:56
repository: dcoppenhagan/myimage:7.56
push: true
source: local
- name: Tag and push to local registry
community.docker.docker_image:
# Image will be centos:7
name: centos
# Will be pushed to localhost:5000/centos:7
repository: localhost:5000/centos
tag: 7
push: true
source: local
- name: Add tag latest to image
community.docker.docker_image:
name: myimage:7.1.2
repository: myimage:latest
# As 'latest' usually already is present, we need to enable overwriting of existing tags:
force_tag: true
source: local
- name: Remove image
community.docker.docker_image:
state: absent
name: registry.ansible.com/chouseknecht/sinatra
tag: v1
- name: Build an image and push it to a private repo
community.docker.docker_image:
build:
path: ./sinatra
name: registry.ansible.com/chouseknecht/sinatra
tag: v1
push: true
source: build
- name: Archive image
community.docker.docker_image:
name: registry.ansible.com/chouseknecht/sinatra
tag: v1
archive_path: my_sinatra.tar
source: local
- name: Load image from archive and push to a private registry
community.docker.docker_image:
name: localhost:5000/myimages/sinatra
tag: v1
push: true
load_path: my_sinatra.tar
source: load
- name: Build image and with build args
community.docker.docker_image:
name: myimage
build:
path: /path/to/build/dir
args:
log_volume: /var/log/myapp
listen_port: 8080
source: build
- name: Build image using cache source
community.docker.docker_image:
name: myimage:latest
build:
path: /path/to/build/dir
# Use as cache source for building myimage
cache_from:
- nginx:latest
- alpine:3.8
source: build
返回值
常用返回值已在此处记录 此处,以下是此模块特有的字段
键 |
描述 |
---|---|
受影响镜像的镜像检查结果。 返回:成功 示例: |
|
构建镜像时的 Docker 构建输出。 返回:成功 示例: |