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/。此模块不使用 Python 的 Docker SDK 与 Docker 守护进程通信。它使用源自 Docker SDK 或 Python 的代码,该代码包含在此集合中。