Spec-Zone.ru › Ansible 2.9

docker_container – управлять контейнерами Docker

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Управление жизненным циклом контейнеров Docker.
  • Поддерживает режим проверки. Запустите с --check и --diff для просмотра различий в конфигурации и списка действий, которые необходимо выполнить.

Требования

Ниже приведены требования к хосту, на котором выполняется этот модуль.

  • API Docker >= 1.20
  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (подробности см. в здесь). Для Python 2.6 необходимо использовать docker-py. В противном случае рекомендуется установить модуль Python docker. Обратите внимание, что оба модуля не должны устанавливаться одновременно. Также обратите внимание, что при установке и последующем удалении одного из модулей другой может перестать работать, и потребуется его повторная установка.
  • Docker SDK для Python >= 1.8.0 (для Python 2.6 используйте docker-py)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_version
строка
По умолчанию:
"auto"
Версия Docker API, работающая на Docker хосте.
По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.
Если значение не указано в задаче, используется значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, используется значение по умолчанию.

Псевдонимы: docker_api_version
auto_remove
логическое
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Включить автоматическое удаление контейнера на стороне демона, когда процесс контейнера завершается.
blkio_weight
целое число
Ввод-вывод блоков (относительный вес), от 10 до 1000.
ca_cert
путь
Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA.
Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, используется файл ca.pem из директории, указанной в переменной окружения DOCKER_CERT_PATH.

Псевдонимы: tls_ca_cert, cacert_path
cap_drop
список / элементы=строка
добавлен в 2.7
Список возможностей для удаления из контейнера.
capabilities
список / элементы=строка
Список возможностей для добавления в контейнер.
cleanup
логическое
    Варианты:
  • нет ←
  • да
Использовать с detach=false для удаления контейнера после успешного выполнения.
client_cert
путь
Путь к файлу сертификата TLS клиента.
Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, используется файл cert.pem из директории, указанной в переменной окружения DOCKER_CERT_PATH.

Псевдонимы: tls_client_cert, cert_path
client_key
путь
Путь к файлу ключа TLS клиента.
Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, используется файл key.pem из директории, указанной в переменной окружения DOCKER_CERT_PATH.

Псевдонимы: tls_client_key, key_path
command
сырой
Команда для выполнения при запуске контейнера. Команда может быть строкой или списком.
До версии 2.4 строки разделялись запятыми.
comparisons
словарь
добавлен в 2.8
Позволяет указать, как сравниваются свойства существующих контейнеров с параметрами модуля, чтобы определить, нужно ли пересоздать/обновить контейнер или нет.
Можно указать только параметры, соответствующие состоянию контейнера, обрабатываемому демоном Docker, а также networks.
Должен быть словарь, задающий для параметра одно из ключей strict, ignore и allow_more_present.
Если strict указан, значения проверяются на равенство, а изменения всегда приводят к обновлению или перезапуску. Если ignore указан, изменения игнорируются.
allow_more_present разрешен только для списков, множеств и словарей. Если он указан для списков или множеств, контейнер будет обновлен или перезапущен только в том случае, если параметр модуля содержит значение, которое отсутствует в параметрах контейнера. Если параметр указан для словаря, контейнер будет обновлен или перезапущен только в том случае, если параметр модуля содержит ключ, который отсутствует в параметре контейнера, или если значение существующего ключа отличается.
Дикий символ * может использоваться для установки одного из значений по умолчанию strict или ignore для *всех* сравнений, которые не явно заданы другими значениями.
Подробности см. в примерах.
cpu_period
целое число
Ограничение периода CPU CFS (Completely Fair Scheduler).
cpu_quota
целое число
Ограничение квоты CPU CFS (Completely Fair Scheduler).
cpu_shares
целое число
CPU доли (относительный вес).
cpuset_cpus
строка
Процессоры, в которых разрешено выполнение 1,3 или 1-3.
cpuset_mems
строка
Узлы памяти (MEM) в которых разрешено выполнение 0-3 или 0,1.
debug
логическое
    Варианты:
  • нет ←
  • да
Режим отладки
detach
логическое
    Варианты:
  • нет
  • да ←
Включить режим открепления для запуска контейнера в фоновом режиме.
Если отключено, задача отразит состояние запуска контейнера (неудачно, если команда завершилась неудачно).
device_read_bps
список / элементы=словарь
добавлен в 2.8
Список путей устройств и скорости чтения (байт в секунду) с устройства.
path
строка / обязательно
Путь к устройству в контейнере.
rate
строка / обязательно
Предел чтения устройства в формате <number>[<unit>].
Число - положительное целое число. Единица измерения может быть одной из B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
Пропуск единицы измерения по умолчанию - байты.
device_read_iops
список / элементы=словарь
добавлен в 2.8
Список устройств и скорости чтения (операций ввода-вывода в секунду) с устройства.
path
строка / обязательно
Путь к устройству в контейнере.
rate
целое число / обязательно
Предел чтения устройства.
Должно быть положительным целым числом.
device_write_bps
список / элементы=словарь
добавлен в 2.8
Список устройств и скорости записи (байт в секунду) на устройство.
path
строка / обязательно
Путь к устройству в контейнере.
rate
строка / обязательно
Предел записи устройства в формате <number>[<unit>].
Число - положительное целое число. Единица измерения может быть одной из B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
Пропуск единицы измерения по умолчанию - байты.
device_write_iops
список / элементы=словарь
добавлен в 2.8
Список устройств и скорости записи (операций ввода-вывода в секунду) на устройство.
путь
строка / обязательно
Путь к устройству в контейнере.
скорость
целое число / обязательно
Предел чтения устройства.
Должно быть положительным целым числом.
устройства
список / элементы=строка
Список привязок устройств хоста для добавления в контейнер.
Каждая привязка — это отображение, выраженное в формате <path_on_host>:<path_in_container>:<cgroup_permissions>.
dns_opts
список / элементы=строка
Список опций DNS.
dns_search_domains
список / элементы=строка
Список пользовательских доменов поиска DNS.
dns_servers
список / элементы=строка
Список пользовательских DNS-серверов.
docker_host
строка
По умолчанию:
"unix://var/run/docker.sock"
URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удаленному хосту укажите строку TCP-соединения. Например, tcp://192.0.2.23:2376. Если для шифрования соединения используется TLS, модуль автоматически заменит tcp в URL соединения на https.
Если значение не указано в задаче, используется значение переменной среды DOCKER_HOST . Если переменная среды не задана, используется значение по умолчанию.

псевдонимы: docker_url
domainname
строка
добавлен в 2.5
Имя домена контейнера.
entrypoint
список / элементы=строка
Команда, которая переопределяет значение по умолчанию ENTRYPOINT образа.
env
словарь
Словарь пар ключ-значение.
Значения, которые могут быть обработаны парсером YAML как числа, булевы значения или другие типы, должны быть заключены в кавычки (например, "true"), чтобы избежать потери данных.
env_file
путь
Путь к файлу на целевом устройстве, содержащему переменные среды FOO=BAR.
Если переменная также присутствует в env, то значение env будет переопределено.
etc_hosts
словарь
Словарь соответствий хост-IP, где имя хоста является ключом в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера.
exposed_ports
список / элементы=строка
Список дополнительных портов контейнера, который сообщает Docker о том, что контейнер прослушивает указанные сетевые порты во время выполнения.
Если порт уже экспонирован с использованием EXPOSE в Dockerfile, его не нужно экспонировать снова.

псевдонимы: exposed, expose
force_kill
булево
    Варианты:
  • нет ←
  • да
Использовать команду kill при остановке работающего контейнера.

псевдонимы: forcekill
groups
список / элементы=строка
Список дополнительных имен групп и/или идентификаторов, от имени которых будет работать процесс контейнера.
healthcheck
словарь
добавлен в 2.8
Настройка проверки, выполняемой для определения "здоровья" контейнеров для данной службы.
См. документацию по инструкции HEALTHCHECK Dockerfile instruction для получения подробной информации о работе healthchecks.
interval, timeout и start_period указываются как длительности. Они принимают длительность в виде строки в формате: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h.
интервал
строка
Время между выполнением проверки.
Значение по умолчанию, используемое демоном Docker, — 30s.
повторных попыток
целое число
Необходимое количество последовательных сбоев для отметки как нездорового.
Значение по умолчанию, используемое демоном Docker, — 3.
период_старта
строка
Период запуска контейнера для инициализации перед началом отсчета попыток проверки.
Значение по умолчанию, используемое демоном Docker, — 0s.
тест
сырой
Команда для выполнения проверки состояния.
Должно быть либо строкой, либо списком. Если это список, первый элемент должен быть одним из NONE, CMD или CMD-SHELL.
таймаут
строка
Максимальное время для выполнения одной проверки.
Значение по умолчанию, используемое демоном Docker, — 30s.
hostname
строка
Имя хоста контейнера.
ignore_image
булево
    Варианты:
  • нет ←
  • да
Когда состояние — present или started, модуль сравнивает конфигурацию существующего контейнера с запрошенной конфигурацией. Оценка включает версию образа. Если версия образа в репозитории не совпадает с контейнером, контейнер будет пересоздан. Вы можете остановить это поведение, установив ignore_image в True.
*Предупреждение:* Этот параметр игнорируется, если image: ignore или *: ignore указаны в параметре comparisons.
образ
строка
Путь к репозиторию и тегу, используемым для создания контейнера. Если образ не найден или выполняется pull, образ будет загружен из репозитория. Если тег не указан, используется latest.
Также может быть идентификатором образа. В этом случае предполагается, что образ доступен локально. Параметр pull игнорируется в этом случае.
init
булево
добавлен в 2.6
    Варианты:
  • нет ←
  • да
Запуск init внутри контейнера, который передает сигналы и собирает процессы.
Этот параметр требует API Docker >= 1.25.
интерактивный
булево
    Варианты:
  • нет ←
  • да
Поддержание stdin открытым после запуска контейнера, даже если он не присоединён.
ipc_mode
строка
Установить режим IPC для контейнера.
Может быть одним из container:<name|id> для повторного использования пространства имен IPC другого контейнера или host для использования пространства имен IPC хоста внутри контейнера.
keep_volumes
булево
    Варианты:
  • нет
  • да ←
Сохранение анонимных томов, связанных с удалённым контейнером.
kernel_memory
строка
Предел оперативной памяти ядра в формате <number>[<unit>]. Число — положительное целое число. Единица измерения может быть B (байт), K (кибибайт, 1024 байт), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт). Минимальное значение — 4M.
Пропуск единицы измерения по умолчанию задает байты.
kill_signal
строка
Переопределить стандартный сигнал для завершения работы контейнера.
labels
словарь
Словарь пар ключ-значение.
links
список / элементы=строка
Список псевдонимов имён для связанных контейнеров в формате container_name:alias.
Указание этого параметра принудительно перезапустит контейнер.
log_driver
строка
Укажите драйвер ведения журнала. Docker по умолчанию использует json-file.
Возможные варианты см. здесь.
log_options
словарь
Словарь опций, специфичных для выбранного драйвера журнала (log_driver).
Подробности см. в https://docs.docker.com/engine/admin/logging/overview/.

Псевдонимы: log_opt
mac_address
строка
MAC-адрес контейнера (например, 92:d0:c6:0a:29:33).
memory
строка
По умолчанию:
"0"
Предел памяти в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
При отсутствии единицы измерения по умолчанию используется байт.
memory_reservation
строка
Мягкий предел памяти в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
При отсутствии единицы измерения по умолчанию используется байт.
memory_swap
строка
Общий предел памяти (память + своп) в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
При отсутствии единицы измерения по умолчанию используется байт.
memory_swappiness
целое число
Настройка поведения обмена контейнера памятью. Принимает целое число от 0 до 100.
Если не указано, значение останется прежним, если контейнер существует, и унаследуется от хост-машины при (повторном) создании.
mounts
список / элементы=словарь
добавлен в 2.9
Указание монтирования, которое нужно добавить в контейнер. Более мощная альтернатива параметру volumes.
consistency
строка
    Варианты:
  • cached
  • consistent
  • default
  • delegated
Требование к согласованности для монтирования.
labels
словарь
Пользовательские имена и метки для тома. Действительно только для типа volume.
no_copy
булево
    Варианты:
  • no
  • yes
Ложь, если том должен быть заполнен данными из целевого источника. Действительно только для типа volume.
Значение по умолчанию — false.
propagation
строка
    Варианты:
  • private
  • rprivate
  • shared
  • rshared
  • slave
  • rslave
Режим распространения. Действительно только для типа bind.
read_only
булево
    Варианты:
  • no
  • yes
Должно ли монтирование быть только для чтения?
source
строка
Источник монтирования (например, имя тома или путь к хосту).
target
строка / обязательно
Путь внутри контейнера.
tmpfs_mode
строка
Режим разрешений для монтирования tmpfs.
tmpfs_size
строка
Размер монтирования tmpfs в байтах в формате <число>[<единица>].
Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
При отсутствии единицы измерения по умолчанию используется байт.
type
строка
    Варианты:
  • bind
  • npipe
  • tmpfs
  • volume ←
Тип монтирования.
Обратите внимание, что npipe поддерживается только Docker for Windows.
volume_driver
строка
Укажите драйвер томов. Действительно только для типа volume.
Подробности см. здесь.
volume_options
словарь
Словарь опций, специфичных для выбранного драйвера томов. Подробнее см. здесь.
name
строка / обязательно
Присвойте имя новому контейнеру или сопоставьте существующий контейнер.
При идентификации существующего контейнера имя может быть именем, полным или коротким идентификатором контейнера.
network_mode
строка
Подключить контейнер к сети. Возможные значения: bridge, host, none или container:<name|id>.
networks
список / элементы=словарь
Список сетей, к которым принадлежит контейнер.
Примеры структуры данных и использования см. в ПРИМЕРАХ ниже.
Чтобы удалить контейнер из одной или нескольких сетей, используйте параметр purge_networks.
Обратите внимание, что в отличие от docker run ..., docker_container не удаляет сеть по умолчанию, если указан параметр networks. Для принудительного удаления сети по умолчанию (и всех других сетей, не указанных в networks) необходимо явно использовать параметр purge_networks. В качестве альтернативы можно использовать параметр networks_cli_compatible, который будет включен по умолчанию начиная с Ansible 2.12.
aliases
список / элементы=строка
Список псевдонимов для этого контейнера в этой сети. Эти имена могут быть использованы в сети для доступа к этому контейнеру.
ipv4_address
строка
IPv4-адрес контейнера в этой сети.
ipv6_address
строка
IPv6-адрес контейнера в этой сети.
links
список / элементы=строка
Список контейнеров для подключения.
name
строка / обязательно
Имя сети.
networks_cli_compatible
boolean
добавлен в 2.8
    Варианты:
  • нет
  • да
Когда сети предоставляются модулю через параметр networks, модуль ведет себя иначе, чем docker run --network: docker run --network other создаст контейнер с сетью other прикрепленной, но без стандартной сети. Этот модуль с networks: {name: other} создаст контейнер с обеими default и other прикреплёнными. Если purge_networks установлено в yes, сеть default будет удалена после этого.
Если networks_cli_compatible установлено в yes, этот модуль будет вести себя как docker run --network и *не* добавит стандартную сеть, если указан параметр networks. Если networks не указан, стандартная сеть будет прикреплена.
Обратите внимание, что Docker CLI также устанавливает network_mode в имя первой добавленной сети, если --network указан. Для большей совместимости с Docker CLI, вы должны явно установить network_mode в имя первой добавляемой сети.
Текущее значение no. Новый стандартный параметр yes будет установлен в Ansible 2.12.
oom_killer
boolean
    Варианты:
  • нет
  • да
Отключить или нет OOM Killer для контейнера.
oom_score_adj
integer
Целое число, содержащее оценку, присваиваемую контейнеру для настройки предпочтений OOM Killer.
output_logs
boolean
добавлен в 2.7
    Варианты:
  • нет ←
  • да
Если установлено в true, вывод команды контейнера будет выведен.
Эффективно только когда log_driver установлен в json-file или journald.
paused
boolean
    Варианты:
  • нет ←
  • да
Используйте со статусом started для приостановки работающих процессов внутри контейнера.
pid_mode
string
Установить режим пространства имен PID для контейнера.
Обратите внимание, что Docker SDK для Python < 2.0 поддерживает только host. Более новые версии Docker SDK для Python (docker) позволяют все значения, поддерживаемые Docker демоном.
pids_limit
integer
добавлен в 2.8
Установить лимит PIDs для контейнера. Принимает целое число.
Установите -1 для неограниченного количества PIDs.
privileged
boolean
    Варианты:
  • нет ←
  • да
Предоставить расширенные привилегии контейнеру.
published_ports
list / elements=string
Список портов для публикации из контейнера на хост.
Используйте синтаксис docker CLI: 8000, 9000:8000, или 0.0.0.0:9000:8000, где 8000 - порт контейнера, 9000 - порт хоста, а 0.0.0.0 - интерфейс хоста.
Можно использовать диапазоны портов для источника и назначения. Если указаны два диапазона разной длины, будет использован более короткий диапазон.
Адреса привязки должны быть IPv4 или IPv6 адресами. Имена хостов *не* разрешены. Это отличается от docker утилиты командной строки. Используйте dig lookup для разрешения имён хостов.
Значение all опубликует все открытые порты контейнера на случайные порты хоста, игнорируя любые другие сопоставления.
Если параметр networks указан, будет проинспектирована каждая сеть для проверки существования мостовой сети с необязательным параметром com.docker.network.bridge.host_binding_ipv4. Если такая сеть найдена, опубликованные порты, для которых не указан адрес хоста, будут привязаны к адресу хоста, указанному в com.docker.network.bridge.host_binding_ipv4. Обратите внимание, что первая мостовая сеть с значением com.docker.network.bridge.host_binding_ipv4 в списке networks будет использована.

псевдонимы: порты
pull
boolean
    Варианты:
  • нет ←
  • да
Если true, всегда тянуть последнюю версию образа. В противном случае, будет тянуть образ только при его отсутствии.
*Примечание:* образы тянутся только при указании имени. Если образ указан как идентификатор образа (хеш), он не может быть загружен.
purge_networks
boolean
    Варианты:
  • нет ←
  • да
Удалить контейнер из ВСЕХ сетей, не включенных в параметр networks.
Любые стандартные сети, такие как bridge, если они не найдены в networks, также будут удалены.
read_only
boolean
    Варианты:
  • нет ←
  • да
Подмонтировать корневую файловую систему контейнера в режиме только для чтения.
recreate
boolean
    Варианты:
  • нет ←
  • да
Используйте со статусами present и started для принудительной пересоздания существующего контейнера.
restart
boolean
    Варианты:
  • нет ←
  • да
Используйте со статусом started для принудительной остановки и перезапуска соответствующего контейнера.
restart_policy
string
    Варианты:
  • нет
  • on-failure
  • всегда
  • кроме-остановки
Политика перезапуска контейнера.
Добавьте кавычки к параметру no.
restart_retries
integer
Используйте с политикой перезапуска для управления максимальным количеством попыток перезапуска.
runtime
string
добавлен в 2.8
Используемый runtime для контейнера.
security_opts
list / elements=string
Список параметров безопасности в формате "label:user:User".
shm_size
string
Размер /dev/shm в формате <number>[<unit>]. Число - положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).
Опускание единицы измерения по умолчанию устанавливает байты. Если вы опустите размер полностью, Docker демен использует 64M.
ssl_version
string
Укажите допустимую версию SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задаче, вместо этого будет использовано значение переменной окружения DOCKER_SSL_VERSION.
состояние
строка
    Варианты:
  • отсутствует
  • присутствует
  • остановлен
  • запущен ←
absent - Контейнер с указанным именем будет остановлен и удален. Используйте force_kill для завершения работы контейнера, а не просто остановки. Используйте keep_volumes для сохранения анонимных томов, связанных с удалённым контейнером.
present - Утверждает существование контейнера, соответствующего имени и любым предоставленным параметрам конфигурации. Если ни один контейнер не соответствует имени, контейнер будет создан. Если контейнер соответствует имени, но предоставленная конфигурация не соответствует, контейнер будет обновлён, если это возможно. Если его нельзя обновить, он будет удалён и пересоздан с запрошенной конфигурацией.
started - Утверждает, что контейнер сначала present, а затем, если контейнер не запущен, переводит его в состояние «запущен». Используйте restart для принудительного остановления и перезапуска соответствующего контейнера.
stopped - Утверждает, что контейнер сначала present, а затем, если контейнер запущен, переводит его в состояние «остановлен».
Для управления тем, что будет учитываться при сравнении конфигураций, см. опцию comparisons. Чтобы избежать учёта версии образа, вы также можете использовать опцию ignore_image.
Используйте опцию recreate, чтобы всегда принудительно пересоздавать соответствующий контейнер, даже если он запущен.
Если контейнер должен быть завершён вместо остановки в случае необходимости его остановки для пересоздания или потому, что состояние равно stopped, используйте опцию force_kill. Используйте keep_volumes для сохранения анонимных томов, связанных с удалённым контейнером.
Используйте keep_volumes для сохранения анонимных томов, связанных с удалённым контейнером.
сигнал_остановки
строка
Переопределить стандартный сигнал, используемый для остановки контейнера.
таймаут_остановки
целое число
Количество секунд ожидания остановки контейнера перед отправкой SIGKILL. При создании контейнера данным модулем его конфигурация StopTimeout будет установлена в это значение.
При остановке контейнера используется как таймаут для остановки контейнера. В случае наличия у контейнера пользовательской конфигурации StopTimeout, поведение зависит от версии демона Docker. Новые версии демона Docker всегда будут использовать значение StopTimeout, сконфигурированное для контейнера, если оно было настроено.
sysctls
словарь
добавлен в 2.4
Словарь пар ключ-значение.
таймаут
целое число
Значение по умолчанию:
60
Максимальное время в секундах ожидания ответа от API.
Если значение не указано в задаче, вместо него используется значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не установлена, используется значение по умолчанию.
tls
логический тип
    Варианты:
  • нет ←
  • да
Защитить подключение к API, используя TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, оно будет иметь приоритет.
Если значение не указано в задаче, вместо него используется значение переменной окружения DOCKER_TLS. Если переменная окружения не установлена, используется значение по умолчанию.
tls_hostname
строка
Значение по умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, вместо него используется значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не установлена, используется значение по умолчанию.
tmpfs
список / элементы=строка
добавлен в 2.4
Монтирование временной директории tmpfs.
trust_image_content
логический тип
    Варианты:
  • нет ←
  • да
Если yes, пропуск проверки образа.
tty
логический тип
    Варианты:
  • нет ←
  • да
Выделение псевдо-терминала.
ulimits
список / элементы=строка
Список опций ulimit. Ulimit задаётся как nofile:262144:262144.
пользователь
строка
Устанавливает имя пользователя или UID, и необязательно имя группы или GID для указанной команды.
Может быть в формате user, user:group, uid, uid:gid, user:gid или uid:group.
userns_mode
строка
добавлен в 2.5
Установить режим пользовательского пространства для контейнера. В настоящее время единственные допустимые значения это host и пустая строка.
uts
строка
Установить режим пространства UTS для контейнера.
validate_certs
логический тип
    Варианты:
  • нет ←
  • да
Защитить подключение к API, используя TLS и проверку подлинности сервера Docker.
Если значение не указано в задаче, вместо него используется значение переменной окружения DOCKER_TLS_VERIFY. Если переменная окружения не установлена, используется значение по умолчанию.

псевдонимы: tls_verify
volume_driver
строка
Драйвер тома контейнера.
volumes
список / элементы=строка
Список томов для монтирования внутри контейнера.
Используйте синтаксис docker CLI: /host:/container[:mode]
Режим монтирования может быть перечнем различных режимов, таких как ro, rw, consistent, delegated, cached, rprivate, private, rshared, shared, rslave, slave, и nocopy. Обратите внимание, что демон Docker может не поддерживать все режимы и комбинации таких режимов.
SELinux хосты дополнительно могут использовать z или Z для использования общего или частного тега для тома.
Обратите внимание, что Ansible 2.7 и более ранние версии поддерживали только один режим, который должен был быть одним из ro, rw, z, и Z.
volumes_from
список / элементы=строка
Список имён или идентификаторов контейнеров для получения томов.
рабочая_директория
строка
добавлен в 2.4
Путь к рабочей директории.

Примечания

Примечание

  • Для большинства изменений конфигурации требуется пересоздание контейнера, т.е. существующий контейнер должен быть уничтожен, а новый создан. Это может привести к непредвиденной потере данных и простоям. Вы можете использовать опцию comparisons, чтобы предотвратить это.
  • Если модуль должен пересоздать контейнер, он будет использовать только опции, предоставленные модулю для создания нового контейнера (за исключением image). Поэтому всегда указывайте все опции, относящиеся к контейнеру.
  • Когда restart установлен в true, модуль будет перезапускать контейнер только в том случае, если изменения конфигурации не обнаружены. Обратите внимание, что несколько опций имеют значения по умолчанию; если контейнер, который нужно перезапустить, использует другие значения для этих опций, он будет пересоздан вместо этого. К опциям со значениями по умолчанию, которые могут вызвать это, относятся auto_remove, detach, init, interactive, memory, paused, privileged, read_only и tty.
  • Подключитесь к демону Docker, предоставив параметры с каждой задачей или определив переменные среды. Вы можете определить DOCKER_HOST, DOCKER_TLS_HOSTNAME, DOCKER_API_VERSION, DOCKER_CERT_PATH, DOCKER_SSL_VERSION, DOCKER_TLS, DOCKER_TLS_VERIFY и DOCKER_TIMEOUT. Если вы используете docker machine, запустите скрипт, поставляемый с продуктом, который устанавливает среду. Он установит эти переменные для вас. См. https://docs.docker.com/machine/reference/env/ для получения более подробной информации.
  • При подключении к демону Docker с TLS вам, возможно, потребуется установить дополнительные пакеты Python. Для Docker SDK для Python версии 2.4 или новее это можно сделать, установив docker[tls] с помощью pip.
  • Обратите внимание, что Docker SDK для Python позволяет указать путь к конфигурации Docker только для очень немногих функций. В общем случае он будет использовать $HOME/.docker/config.json, если переменная среды DOCKER_CONFIG не указана, и использовать $DOCKER_CONFIG/config.json в противном случае.

Примеры

- name: Create a data container
  docker_container:
    name: mydata
    image: busybox
    volumes:
      - /data

- name: Re-create a redis container
  docker_container:
    name: myredis
    image: redis
    command: redis-server --appendonly yes
    state: present
    recreate: yes
    exposed_ports:
      - 6379
    volumes_from:
      - mydata

- name: Restart a container
  docker_container:
    name: myapplication
    image: someuser/appimage
    state: started
    restart: yes
    links:
     - "myredis:aliasedredis"
    devices:
     - "/dev/sda:/dev/xvda:rwm"
    ports:
     - "8080:9000"
     - "127.0.0.1:8081:9001/udp"
    env:
        SECRET_KEY: "ssssh"
        # Values which might be parsed as numbers, booleans or other types by the YAML parser need to be quoted
        BOOLEAN_KEY: "yes"

- name: Container present
  docker_container:
    name: mycontainer
    state: present
    image: ubuntu:14.04
    command: sleep infinity

- name: Stop a container
  docker_container:
    name: mycontainer
    state: stopped

- name: Start 4 load-balanced containers
  docker_container:
    name: "container{{ item }}"
    recreate: yes
    image: someuser/anotherappimage
    command: sleep 1d
  with_sequence: count=4

- name: remove container
  docker_container:
    name: ohno
    state: absent

- name: Syslogging output
  docker_container:
    name: myservice
    image: busybox
    log_driver: syslog
    log_options:
      syslog-address: tcp://my-syslog-server:514
      syslog-facility: daemon
      # NOTE: in Docker 1.13+ the "syslog-tag" option was renamed to "tag" for
      # older docker installs, use "syslog-tag" instead
      tag: myservice

- name: Create db container and connect to network
  docker_container:
    name: db_test
    image: "postgres:latest"
    networks:
      - name: "{{ docker_network_name }}"

- name: Start container, connect to network and link
  docker_container:
    name: sleeper
    image: ubuntu:14.04
    networks:
      - name: TestingNet
        ipv4_address: "172.1.1.100"
        aliases:
          - sleepyzz
        links:
          - db_test:db
      - name: TestingNet2

- name: Start a container with a command
  docker_container:
    name: sleepy
    image: ubuntu:14.04
    command: ["sleep", "infinity"]

- name: Add container to networks
  docker_container:
    name: sleepy
    networks:
      - name: TestingNet
        ipv4_address: 172.1.1.18
        links:
          - sleeper
      - name: TestingNet2
        ipv4_address: 172.1.10.20

- name: Update network with aliases
  docker_container:
    name: sleepy
    networks:
      - name: TestingNet
        aliases:
          - sleepyz
          - zzzz

- name: Remove container from one network
  docker_container:
    name: sleepy
    networks:
      - name: TestingNet2
    purge_networks: yes

- name: Remove container from all networks
  docker_container:
    name: sleepy
    purge_networks: yes

- name: Start a container and use an env file
  docker_container:
    name: agent
    image: jenkinsci/ssh-slave
    env_file: /var/tmp/jenkins/agent.env

- name: Create a container with limited capabilities
  docker_container:
    name: sleepy
    image: ubuntu:16.04
    command: sleep infinity
    capabilities:
      - sys_time
    cap_drop:
      - all

- name: Finer container restart/update control
  docker_container:
    name: test
    image: ubuntu:18.04
    env:
      arg1: "true"
      arg2: "whatever"
    volumes:
      - /tmp:/tmp
    comparisons:
      image: ignore   # don't restart containers with older versions of the image
      env: strict   # we want precisely this environment
      volumes: allow_more_present   # if there are more volumes, that's ok, as long as `/tmp:/tmp` is there

- name: Finer container restart/update control II
  docker_container:
    name: test
    image: ubuntu:18.04
    env:
      arg1: "true"
      arg2: "whatever"
    comparisons:
      '*': ignore  # by default, ignore *all* options (including image)
      env: strict   # except for environment variables; there, we want to be strict

- name: Start container with healthstatus
  docker_container:
    name: nginx-proxy
    image: nginx:1.13
    state: started
    healthcheck:
      # Check if nginx server is healthy by curl'ing the server.
      # If this fails or timeouts, the healthcheck fails.
      test: ["CMD", "curl", "--fail", "http://nginx.host.com"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 30s

- name: Remove healthcheck from container
  docker_container:
    name: nginx-proxy
    image: nginx:1.13
    state: started
    healthcheck:
      # The "NONE" check needs to be specified
      test: ["NONE"]

- name: start container with block device read limit
  docker_container:
    name: test
    image: ubuntu:18.04
    state: started
    device_read_bps:
      # Limit read rate for /dev/sda to 20 mebibytes per second
      - path: /dev/sda
        rate: 20M
    device_read_iops:
      # Limit read rate for /dev/sdb to 300 IO per second
      - path: /dev/sdb
        rate: 300

Возвращаемые значения

Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для этого модуля:

Ключ Возвращаемое Описание
container
словарь
всегда
Факты, представляющие текущее состояние контейнера. Соответствует выводу docker inspection.
Обратите внимание, что факты являются частью зарегистрированных переменных с Ansible 2.8. По соображениям совместимости, факты также доступны непосредственно как docker_container. Обратите внимание, что возвращаемый факт будет удален в Ansible 2.12.
До версии 2.3 это было ansible_docker_container, но было переименовано в версии 2.3 в docker_container из-за конфликтов с плагином соединения.
Пустой, если state равен absent
Если detached равен false, будет содержать атрибут Output, содержащий любой вывод из выполнения контейнера.

Пример:
{ "AppArmorProfile": "", "Args": [], "Config": { "AttachStderr": false, "AttachStdin": false, "AttachStdout": false, "Cmd": [ "/usr/bin/supervisord" ], "Domainname": "", "Entrypoint": null, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "ExposedPorts": { "443/tcp": {}, "80/tcp": {} }, "Hostname": "8e47bf643eb9", "Image": "lnmp_nginx:v1", "Labels": {}, "OnBuild": null, "OpenStdin": false, "StdinOnce": false, "Tty": false, "User": "", "Volumes": { "/tmp/lnmp/nginx-sites/logs/": {} }, ... }


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Cove Schneider (@cove)
  • Joshua Conner (@joshuaconner)
  • Pavel Antonov (@softzilla)
  • Thomas Steinbach (@ThomasSteinbach)
  • Philippe Jandot (@zfil)
  • Daan Oosterveld (@dusdanig)
  • Chris Houseknecht (@chouseknecht)
  • Kassian Sun (@kassiansun)
  • Felix Fontein (@felixfontein)

Подсказка

Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/docker_container_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API