community.docker.docker_api connection – Run tasks in docker containers
Note
This connection plugin is part of the community.docker collection (version 3.13.1).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.docker
.
You need further requirements to be able to use this connection plugin,
see Requirements for details.
To use it in a playbook, specify: community.docker.docker_api
.
New in community.docker 1.1.0
Synopsis
Run commands or put/fetch files to an existing docker container.
Uses the requests library to interact directly with the Docker daemon instead of using the Docker CLI. Use the community.docker.docker connection plugin if you want to use the Docker CLI.
Requirements
The below requirements are needed on the local controller node that executes this connection.
requests
pywin32 (when using named pipes on Windows 32)
paramiko (when using SSH with
use_ssh_client=false
)pyOpenSSL (when using TLS)
backports.ssl_match_hostname (when using TLS on Python 2)
Parameters
Parameter |
Comments |
---|---|
The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supported by this collection and the docker daemon. If the value is not specified in the task, the value of environment variable Default: Configuration:
|
|
Use a CA certificate when performing server verification by providing the path to a CA certificate file. If the value is not specified in the task and the environment variable This option was called Configuration:
|
|
Path to the client’s TLS certificate file. If the value is not specified in the task and the environment variable Configuration:
|
|
Path to the client’s TLS key file. If the value is not specified in the task and the environment variable Configuration:
|
|
Controls how long we can wait to access reading output from the container once execution started. Default: Configuration:
|
|
Debug mode Choices:
|
|
The URL or Unix socket path used to connect to the Docker API. To connect to a remote host, provide the TCP connection string. For example, If the value is not specified in the task, the value of environment variable Default: Configuration:
|
|
Provide extra environment variables to set when running commands in the Docker container. This option can currently only be provided as Ansible variables due to limitations of ansible-core’s configuration manager. Configuration:
|
|
Whether commands should be run with extended privileges. Note that this allows command to potentially break out of the container. Use with care! Choices:
Configuration:
|
|
The name of the container you want to access. Default: Configuration:
|
|
The user to execute as inside the container. Configuration:
|
|
Provide a valid SSL version number. Default value determined by SSL Python module. If the value is not specified in the task, the value of environment variable Configuration:
|
|
The maximum amount of time in seconds to wait on a response from the API. If the value is not specified in the task, the value of environment variable Default: Configuration:
|
|
Secure the connection to the API by using TLS without verifying the authenticity of the Docker host server. Note that if If the value is not specified in the task, the value of environment variable Choices:
Configuration:
|
|
When verifying the authenticity of the Docker Host server, provide the expected name of the server. If the value is not specified in the task, the value of environment variable Note that this option had a default value Configuration:
|
|
For SSH transports, use the Choices:
|
|
Secure the connection to the API by using TLS and verifying the authenticity of the Docker host server. If the value is not specified in the task, the value of environment variable Choices:
Configuration:
|
|
The directory inside the container to run commands in. Requires Docker API version 1.35 or later. Configuration:
|
Notes
Note
Does not work with TCP TLS sockets! This is caused by the inability to send
close_notify
without closing the connection with Python’sSSLSocket
s. See https://github.com/ansible-collections/community.docker/issues/605 for more information.Connect to the Docker daemon by providing parameters with each task or by defining environment variables. You can define
DOCKER_HOST
,DOCKER_TLS_HOSTNAME
,DOCKER_API_VERSION
,DOCKER_CERT_PATH
,DOCKER_SSL_VERSION
,DOCKER_TLS
,DOCKER_TLS_VERIFY
andDOCKER_TIMEOUT
. If you are using docker machine, run the script shipped with the product that sets up the environment. It will set these variables for you. See https://docs.docker.com/machine/reference/env/ for more details.This module does not use the Docker SDK for Python to communicate with the Docker daemon. It uses code derived from the Docker SDK or Python that is included in this collection.