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 请求的超时时间。为秒数提供一个正整数值。 |
|
键值对的字典。 |
|
用于 |
|
构建镜像时不使用缓存。 选项
|
|
与状态 ‘present’ 一起使用以构建镜像。将是包含构建镜像的上下文和 Dockerfile 的目录的路径。 |
|
格式为 |
|
构建镜像时,下载 Dockerfile 中 FROM 镜像的任何更新。 选项
|
|
构建后移除中间容器。 选项
|
|
省略单位则默认为字节。如果完全省略大小,Docker 守护程序将使用 |
|
构建镜像时,按名称指定一个中间构建阶段作为最终镜像的阶段。 |
|
如果设置为 选项
|
|
通过提供 CA 证书文件的路径,在执行服务器验证时使用 CA 证书。 如果未在任务中指定该值,并且设置了环境变量 此选项之前名为 |
|
客户端 TLS 证书文件的路径。 如果未在任务中指定该值,并且设置了环境变量 |
|
客户端 TLS 密钥文件的路径。 如果未在任务中指定该值,并且设置了环境变量 |
|
调试模式 选项
|
|
用于连接 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果未在任务中指定该值,则将改为使用环境变量 默认值: |
|
与 如果要加载镜像,请设置 |
|
镜像名称。名称格式将是以下之一: 请注意,仅对于 |
|
指定用于拉取镜像的选项。 |
|
拉取镜像时,请求此特定平台。 请注意,此值不用于确定是否需要拉取镜像。但这可能会在未来的次要版本中更改。 |
|
与 期望格式为 如果 |
|
确定模块将尝试从何处检索镜像。 使用 使用 使用 使用 选项
|
|
对镜像的状态进行断言。 当 当 选项
|
|
通过使用 TLS 来保护与 API 的连接,而不验证 Docker 主机服务器的真实性。请注意,如果 如果任务中未指定该值,则将使用环境变量 选项
|
|
在验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 如果任务中未指定该值,则将使用环境变量 请注意,此选项在旧版本中的默认值为 |
|
对于 SSH 传输,使用 选项
|
|
通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。 如果任务中未指定该值,则将使用环境变量 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.docker.docker, docker |
在 |
|
支持: 部分支持 尝试拉取镜像时,模块假定这在 check 模式下始终会更改。 |
可以在 |
|
支持: 不支持 |
当处于 diff 模式时,将返回有关已更改(或可能需要在 |
备注
注意
构建镜像使用 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 的构建输出。 返回: 成功 示例: |