community.docker.docker_api 连接 – 在 Docker 容器中运行任务
注意
此连接插件是 community.docker 集合(版本 4.1.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.docker
。您需要其他要求才能使用此连接插件,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.docker.docker_api
。
community.docker 1.1.0 中的新功能
概要
运行命令或将/获取文件到现有的 Docker 容器。
使用 requests 库 直接与 Docker 守护进程交互,而不是使用 Docker CLI。如果您想使用 Docker CLI,请使用 community.docker.docker 连接插件。
要求
以下要求需要在执行此连接的本地控制节点上满足。
requests
pywin32(在 Windows 32 上使用命名管道时)
paramiko(当使用 SSH 和
use_ssh_client=false
时)pyOpenSSL(当使用 TLS 时)
backports.ssl_match_hostname(当在 Python 2 上使用 TLS 时)
参数
参数 |
注释 |
---|---|
Docker 主机上运行的 Docker API 版本。 默认为此集合和 Docker 守护进程支持的最新 API 版本。 如果未在任务中指定该值,则将使用环境变量 默认值: 配置
|
|
通过提供 CA 证书文件的路径,在执行服务器验证时使用 CA 证书。 如果未在任务中指定该值,并且设置了环境变量 此选项在 community.docker 3.6.0 中被称为 配置
|
|
客户端 TLS 证书文件的路径。 如果在任务中未指定该值,并且设置了环境变量 配置
|
|
客户端 TLS 密钥文件的路径。 如果在任务中未指定该值,并且设置了环境变量 配置
|
|
控制在执行开始后,我们可以等待多长时间来访问容器的读取输出。 默认值: 配置
|
|
调试模式 选择
|
|
用于连接 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果在任务中未指定该值,则将使用环境变量 默认值: 配置
|
|
提供在 Docker 容器中运行命令时设置的额外环境变量。 由于 ansible-core 配置管理器的限制,此选项目前只能作为 Ansible 变量提供。 配置
|
|
是否应以扩展的权限运行命令。 请注意,这允许命令潜在地突破容器。请谨慎使用! 选择
配置
|
|
您要访问的容器的名称。 默认值: 配置
|
|
在容器内执行的用户。 配置
|
|
等待 API 响应的最大时间(秒)。 如果在任务中未指定该值,则将使用环境变量 默认值: 配置
|
|
使用 TLS 来保护与 API 的连接,而不验证 Docker 主机服务器的真实性。请注意,如果 如果在任务中未指定该值,则将使用环境变量 选择
配置
|
|
验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 如果在任务中未指定该值,则将使用环境变量 请注意,此选项在旧版本中的默认值为 配置
|
|
对于 SSH 传输,使用 选择
|
|
使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。 如果在任务中未指定该值,则将使用环境变量 选择
配置
|
|
在容器中运行命令的目录。 需要 Docker API 版本 1.35 或更高版本。 配置
|
注意
注意
不适用于 TCP TLS 套接字!这是由于无法在不关闭 Python 的
SSLSocket
连接的情况下发送close_notify
导致的。有关更多信息,请参见 https://github.com/ansible-collections/community.docker/issues/605。通过为每个任务提供参数或定义环境变量来连接到 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 代码。