community.docker.docker_container модуль — управление контейнерами Docker
Примечание
Этот модуль является частью коллекции community.docker (версия 3.13.0).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в playbook укажите: community.docker.docker_container.
Описание
- Управление жизненным циклом контейнеров Docker.
- Поддерживает режим проверки. Запустите с
--checkи--diffдля просмотра различий в конфигурации и списка действий, которые будут выполнены.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- API Docker >= 1.25
- backports.ssl_match_hostname (при использовании TLS в Python 2)
- paramiko (при использовании SSH с
use_ssh_client=false) - pyOpenSSL (при использовании TLS)
- pywin32 (при использовании именованных каналов на Windows 32)
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_version aliases: docker_api_version string | Версия Docker API, работающего на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая этим сбором и демоном docker. Если значение не указано в задаче, вместо него будет использовано значение переменной среды Default: |
auto_remove boolean | Включить автоматическое удаление контейнера на стороне демона, когда завершается процесс контейнера. Если Choices:
|
blkio_weight integer | Блокировка IO (относительный вес), от 10 до 1000. |
ca_path aliases: ca_cert, tls_ca_cert, cacert_path path | Использовать сертификат CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и установлена переменная среды Этот параметр назывался |
cap_drop list / elements=string | Список возможностей, которые нужно удалить из контейнера. |
capabilities list / elements=string | Список возможностей, которые нужно добавить в контейнер. Это эквивалентно |
cgroup_parent string added in community.docker 1.1.0 | Укажите родительскую cgroup для контейнера. |
cgroupns_mode string added in community.docker 3.0.0 | Укажите режим пространства имен cgroup для контейнера. В Docker CLI это называется просто Choices:
|
cleanup boolean | Использовать с Choices:
|
client_cert aliases: tls_client_cert, cert_path path | Путь к файлу сертификата TLS клиента. Если значение не указано в задаче и установлена переменная среды |
client_key aliases: tls_client_key, key_path path | Путь к файлу ключа TLS клиента. Если значение не указано в задаче и установлена переменная среды |
command any | Команда для выполнения при запуске контейнера. Команда может быть строкой или списком. До версии 2.4 строки разделялись запятыми. См. |
command_handling string added in community.docker 1.9.0 | Поведение по умолчанию для Кроме того, установка Если это установлено в Если это установлено в Choices:
|
comparisons словарь | Позволяет указать, как свойства существующих контейнеров сравниваются с параметрами модуля, чтобы определить, следует ли пересоздавать/обновлять контейнер или нет. Можно указать только параметры, соответствующие состоянию контейнера, обрабатываемому демоном Docker, а также Должен быть словарь, определяющий для параметра одно из значений Если указано
Дикий символ Подробности см. в примерах. |
container_default_behavior строка | В более ранних версиях этого модуля различные параметры модуля имели значения по умолчанию. Это вызывало проблемы с контейнерами, использующими разные значения для этих параметров. Теперь значение по умолчанию Это затрагивает параметры Варианты:
|
cpu_period целое число | Ограничить период CPU CFS (Completely Fair Scheduler). См. |
cpu_quota целое число | Ограничить квоту CPU CFS (Completely Fair Scheduler). См. |
целое число | CPU доли (относительный вес). |
cpus вещественное число | Укажите, сколько доступных ресурсов процессора может использовать контейнер. Значение |
cpuset_cpus строка | Процессоры, в которых разрешено выполнение. Например, |
cpuset_mems строка | Узлы памяти (MEM) для выполнения |
debug логический тип | Режим отладки Варианты:
|
default_host_ip строка добавлено в community.docker 1.2.0 | Определите IP-адрес хоста по умолчанию. Должен быть пустой строкой, IPv4-адресом или IPv6-адресом. С Docker 20.10.2 или более поздней версией это значение должно быть пустой строкой ( По умолчанию модуль попытается автоматически определить это значение из параметра |
detach логический тип | Включить режим открепления для запуска контейнера в фоновом режиме. Если отключено, задача отобразит состояние запуска контейнера (сбой, если команда завершилась сбоем). Если Варианты:
|
device_cgroup_rules список / элементы=строка добавлено в community.docker 3.11.0 | Список правил cgroup для применения к контейнеру. |
device_read_bps список / элементы=словарь | Список путей к устройствам и скорости чтения (байты в секунду) с устройства. |
|
path строка / обязательно |
Путь к устройству в контейнере. |
|
rate строка / обязательно |
Предел чтения устройства в формате Число — положительное целое. Единица измерения может быть одной из Пропуск единицы измерения по умолчанию соответствует байтам. |
device_read_iops список / элементы=словарь | Список устройств и скорости чтения (IO в секунду) с устройства. |
|
path строка / обязательно |
Путь к устройству в контейнере. |
|
скорость целое число / обязательно |
Предел чтения устройства. Должно быть положительным целым числом. |
device_requests список / элементы=словарь добавлен в community.docker 0.1.0 | Позволяет запросить дополнительные ресурсы, такие как GPU. |
|
capabilities список / элементы=список |
Список списков строк для запроса возможностей. Элементы верхнего уровня списка объединяются с помощью ИЛИ, а для каждого элемента списка элементы, которые он содержит, объединяются с помощью И. Драйвер пытается удовлетворить один из подсписков. Доступные возможности для драйвера |
|
count целое число |
Количество устройств для запроса. Установите в |
|
device_ids список / элементы=строка |
Список идентификаторов устройств. |
|
драйвер строка |
Какой драйвер использовать для этого устройства. |
|
options словарь |
Параметры, специфичные для драйвера. |
device_write_bps список / элементы=словарь | Список устройства и скорости записи (байты в секунду) на устройство. |
|
путь строка / обязательно |
Путь к устройству в контейнере. |
|
скорость строка / обязательно |
Предел чтения устройства в формате Число — положительное целое число. Единица может быть одной из Пропуск единицы по умолчанию означает байты. |
device_write_iops список / элементы=словарь | Список устройства и скорости записи (Ввод/вывод в секунду) на устройство. |
|
путь строка / обязательно |
Путь к устройству в контейнере. |
|
скорость целое число / обязательно |
Предел чтения устройства. Должно быть положительным целым числом. |
devices список / элементы=строка | Список привязок устройств хоста для добавления в контейнер. Каждая привязка — это отображение, выраженное в формате |
dns_opts список / элементы=строка | Список параметров DNS. |
dns_search_domains список / элементы=строка | Список пользовательских доменных имен DNS. |
dns_servers список / элементы=строка | Список пользовательских серверов DNS. |
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удаленному хосту укажите строку TCP-соединения. Например, Если значение не указано в задаче, будет использовано значение переменной среды По умолчанию: |
domainname строка | Имя домена контейнера. |
entrypoint список / элементы=строка | Команда, которая перезаписывает значение по умолчанию См. |
env словарь | Словарь пар ключ-значение. Значения, которые могут быть распарсены как числа, булевы значения или другие типы с помощью парсера YAML, должны быть заключены в кавычки (например, Обратите внимание, что при передаче значений с помощью шаблонов Jinja2, например, |
env_file путь | |
etc_hosts словарь | Словарь сопоставлений имя хоста — IP-адрес, где имя хоста — ключ в словаре. Каждое имя хоста будет добавлено в файл Вместо IP-адреса также можно использовать специальное значение |
exposed_ports псевдонимы: exposed, expose список / элементы=строка | Список дополнительных портов контейнера, который сообщает Docker, что контейнер прослушивает указанные сетевые порты во время выполнения. Если порт уже открыт с помощью |
force_kill псевдонимы: forcekill логическое | Использовать команду kill при остановке работающего контейнера. Варианты:
|
groups список / элементы=строка | Список дополнительных имен и/или идентификаторов групп, под которыми будет работать процесс контейнера. |
healthcheck словарь | Настройка проверки для определения состояния «здоровья» контейнеров данной службы. Подробности о работе healthcheck см. в документации к инструкции HEALTHCHECK Dockerfile instruction.
См. также |
|
interval строка |
Периодичность выполнения проверки. Значение по умолчанию, используемое демоном Docker, — |
|
retries целое число |
Необходимое количество последовательных сбоев для отметки как нездоровых. Значение по умолчанию, используемое демоном Docker, — |
|
start_interval строка добавлено в community.docker 3.10.0 |
Время между проверками состояния во время начального периода. Этот параметр требует Docker Engine версии 25.0 или более поздней. Значение по умолчанию, используемое демоном Docker, — |
|
start_period строка |
Начальный период для инициализации контейнера перед запуском отсчета перезапуска проверок состояния. Значение по умолчанию, используемое демоном Docker, — |
|
test любой |
Команда для проверки состояния. Должна быть либо строкой, либо списком. Если это список, первый элемент должен быть одним из |
|
test_cli_compatible логическое добавлено в community.docker 3.10.0 |
Если установлено в Если установлено в Варианты:
|
|
timeout строка |
Максимальное время для выполнения одной проверки. Значение по умолчанию, используемое демоном Docker, — |
healthy_wait_timeout число с плавающей точкой добавлено в community.docker 3.11.0 | При ожидании достижения контейнером здорового состояния, если Таймаут указан в секундах. Значение по умолчанию — Установите значение 0 или отрицательное значение, чтобы ждать неограниченно. Обратите внимание, что в зависимости от контейнера это может привести к тому, что модуль не завершится. По умолчанию: |
hostname строка | Имя хоста контейнера. |
ignore_image boolean | Когда Предупреждение: Эта опция игнорируется, если Эта опция устарела начиная с community.docker 3.2.0 и будет удалена в community.docker 4.0.0. Используйте Варианты:
|
image string | Путь к репозиторию и тег, используемые для создания контейнера. Если образ не найден или pull имеет значение true, образ будет вытащен из реестра. Если тег не указан, будет использован Может быть также ID образа. В этом случае предполагается, что образ доступен локально. Опция |
image_comparison string добавлено в community.docker 3.0.0 | Определяет, какой образ использовать для проверок идемпотентности, которые зависят от параметров образа. Значение по умолчанию,
Это влияет на параметры Варианты:
|
image_label_mismatch string добавлено в community.docker 2.6.0 | Как обрабатывать метки, унаследованные от образа, которые не установлены явно. Когда Когда Предупреждение: Эта опция игнорируется, если только Варианты:
|
image_name_mismatch string добавлено в community.docker 3.2.0 | Определяет, что делает модуль, если образ совпадает, но имя образа в конфигурации контейнера не совпадает с именем образа, предоставленным модулю. Это игнорируется, если Если установлено в Если установлено в Начиная с community.docker 3.5.0, значение по умолчанию Варианты:
|
init boolean | Запускает init внутри контейнера, который перенаправляет сигналы и собирает процессы. Если Варианты:
|
interactive boolean | Держит stdin открытым после запуска контейнера, даже если он не прикреплен. Если Варианты:
|
ipc_mode string | Устанавливает режим IPC для контейнера. Может быть одним из |
keep_volumes boolean | Сохраняет анонимные тома, связанные с удаленным контейнером. Варианты:
|
kernel_memory string | Лимит памяти ядра в формате Пропуск единицы измерения по умолчанию означает байты. |
kill_signal string | Переопределяет сигнал по умолчанию, используемый для завершения работы запущенного контейнера. |
labels dictionary | Словарь пар ключ-значение. |
links list / elements=string | Список псевдонимов имен для связанных контейнеров в формате Установка этого параметра приведет к принудительному перезапуску контейнера. |
log_driver string | Укажите драйвер ведения журнала. Docker использует См. документацию по настройке ведения журнала Docker для возможных вариантов. |
log_options aliases: log_opt dictionary | Словарь параметров, специфичных для выбранного См. https://docs.docker.com/engine/admin/logging/overview/ для получения подробной информации.
|
mac_address string | MAC-адрес контейнера (например, Обратите внимание, что глобальный MAC-адрес контейнера устарел и больше не используется с версии Docker API 1.44. Используйте |
memory string | Ограничение памяти в формате Пропуск единицы измерения по умолчанию устанавливает значение в байтах. Если |
memory_reservation string | Мягкое ограничение памяти в формате Пропуск единицы измерения по умолчанию устанавливает значение в байтах. |
memory_swap string | Общее ограничение памяти (память + своп) в формате Пропуск единицы измерения по умолчанию устанавливает значение в байтах. |
memory_swappiness integer | Настройка поведения свопинга памяти контейнера. Принимает целое число от 0 до 100. Если не задано, значение останется прежним, если контейнер существует, и будет унаследовано от хост-машины при его (повторном) создании. |
mounts list / elements=dictionary | Спецификация для монтирования, добавляемых в контейнер. Более мощная альтернатива |
consistency string | Требование согласованности для монтирования. Варианты:
|
labels dictionary | Определенные пользователем имена и метки для тома. Действительно только для типа |
no_copy boolean | False, если том должен быть заполнен данными из целевого источника. Действительно только для типа Значение по умолчанию — Варианты:
|
propagation string | Режим распространения. Действительно только для типа Варианты:
|
read_only boolean | Является ли монтирование только для чтения. Варианты:
|
source string | Источник монтирования. Например, это может быть имя тома или путь к хосту. Если не задано, при |
target string / required | Путь внутри контейнера. |
tmpfs_mode string | Режим разрешений для tmpfs-монтирования. |
tmpfs_size string | Размер tmpfs-монтирования в байтах в формате <число>[<единица>]. Число — положительное целое. Единица измерения может быть одной из Пропуск единицы измерения по умолчанию устанавливает значение в байтах. |
|
type string |
Тип монтирования. Обратите внимание, что Варианты:
|
|
volume_driver string |
Укажите драйвер тома. Действительно только для типа Подробности см. здесь. |
|
volume_options dictionary |
Словарь параметров, специфичных для выбранного драйвера томов. Подробности см. здесь. |
name string / обязательно | Присвойте имя новому контейнеру или сопоставьте существующий контейнер. При идентификации существующего контейнера имя может быть именем или длинным или коротким идентификатором контейнера. |
network_mode string | Подключить контейнер к сети. Доступные варианты: Начиная с community.docker 2.0.0, если |
networks list / elements=dictionary | Список сетей, к которым принадлежит контейнер. Примеры структуры данных и использования см. в примерах ниже. Чтобы удалить контейнер из одной или нескольких сетей, используйте Если |
|
aliases list / elements=string |
Список псевдонимов для этого контейнера в этой сети. Эти имена могут быть использованы в сети для доступа к этому контейнеру. |
|
ipv4_address string |
IP-адрес контейнера в этой сети. |
|
ipv6_address string |
IPv6-адрес контейнера в этой сети. |
|
links list / elements=string |
Список контейнеров, с которыми нужно установить связь. |
|
mac_address string добавлено в community.docker 3.6.0 |
MAC-адрес конечной точки (например, Доступно только для версии Docker API 1.44 и более поздних. Обратите внимание, что при подключении контейнера к сети после создания, это в настоящее время игнорируется демоном Docker, по крайней мере, в некоторых случаях. При указании при создании, это, похоже, работает лучше. |
|
name string / обязательно |
Имя сети. |
networks_cli_compatible boolean | Если Когда Варианты:
|
oom_killer boolean | Отключить или включить механизм OOM Killer для контейнера. Варианты:
|
oom_score_adj integer | Целое число, определяющее приоритет контейнера для механизма OOM Killer. |
output_logs boolean | Если установлено в true, вывод команд контейнера будет выводиться на экран. Эффективно только когда Варианты:
|
paused boolean | Используется со статусом started для приостановки работающих процессов внутри контейнера. Если Варианты:
|
pid_mode string | Устанавливает режим пространства имен PID для контейнера. |
pids_limit integer | Устанавливает лимит PIDs для контейнера. Принимает целое значение. Установите |
platform string добавлен в community.docker 3.0.0 | Платформа для контейнера в формате Обратите внимание, что начиная с community.docker 3.5.0, модуль использует как метаданные изображения, так и информацию демона Docker для нормализации строк платформы, аналогично тому, как это делает сам Docker. Если вы заметите проблемы с идемпотентностью, пожалуйста, создайте вопрос в репозитории community.docker на GitHub. Для более старых версий community.docker вы можете использовать параметр |
privileged boolean | Предоставление расширенных привилегий контейнеру. Если Варианты:
|
publish_all_ports boolean добавлен в community.docker 1.8.0 | Опубликовать все порты на хост. Любые указанные привязки портов из Варианты:
|
published_ports aliases: ports list / elements=string | Список портов для публикации из контейнера на хост. Используйте синтаксис docker CLI: Для исходных и целевых портов можно использовать диапазоны портов. Если указаны два диапазона с разной длиной, будет использован более короткий диапазон. Начиная с community.general 0.2.0, если исходный диапазон портов имеет длину 1, порт не будет назначен первому порту целевого диапазона, а свободному порту в этом диапазоне. Это поведение аналогично Адреса привязки должны быть либо IPv4, либо IPv6 адресами. Имена хостов не допускаются. Это отличается от Если указан параметр Значение |
pull any | Если установлено Если установлено Если установлено Примечание: изображения скачиваются только при указании имени. Если изображение указано как идентификатор изображения (хеш), оно не может быть скачано, и этот параметр игнорируется. Примечание: значения Варианты:
|
pull_check_mode_behavior string добавлен в community.docker 3.8.0 | Позволяет настроить поведение при Поскольку демон Docker не предоставляет функциональности для проверки, приведет ли скачивание к изменению изображения, модуль по умолчанию действует так, как будто Если установлено Если установлено Варианты:
|
purge_networks boolean | Удалить контейнер из ВСЕХ сетей, не включённых в параметр Любые сетевые интерфейсы по умолчанию, такие как Этот параметр устарел с community.docker 3.2.0 и будет удалён в community.docker 4.0.0. Используйте Варианты:
|
read_only boolean | Монтирование корневой файловой системы контейнера в режиме только для чтения. Если Варианты:
|
recreate boolean | Использовать со состояниями present и started, чтобы принудительно пересоздать существующий контейнер. Выбираемые значения:
|
removal_wait_timeout float | При удалении существующего контейнера, вызов API docker-демона выполняется после того, как контейнер запланирован на удаление. Обычно удаление происходит очень быстро, но при высокой нагрузке на ввод-вывод удаление может занять больше времени. По умолчанию модуль ожидает удаления контейнера, сколько бы это ни заняло. Установив этот параметр, модуль будет ждать не более указанного количества секунд, пока контейнер не будет удален. Если контейнер по-прежнему находится на стадии удаления после этого времени, модуль завершится ошибкой. |
restart boolean | Использовать со статусом started, чтобы принудительно остановить и перезапустить соответствующий контейнер. Выбираемые значения:
|
restart_policy string | Политика перезапуска контейнера. Включите кавычки вокруг параметра Выбираемые значения:
|
restart_retries integer | Использовать с политикой перезапуска для управления максимальным количеством попыток перезапуска. |
runtime string | Используемая среда выполнения для контейнера. |
security_opts list / elements=string | Список параметров безопасности в формате |
shm_size string | Размер Опущение единицы измерения по умолчанию предполагает байты. Если размер опущен совсем, Docker-демон использует |
ssl_version string | Укажите действительную версию SSL. Значение по умолчанию определяется модулем SSL Python . Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения |
state string |
Чтобы контролировать, что будет учитываться при сравнении конфигурации, см. параметр Используйте параметр Если контейнер должен быть завершён вместо остановки в случае необходимости остановки для пересоздания, или потому что Используйте Выбираемые значения:
|
stop_signal string | Переопределить стандартный сигнал, используемый для остановки контейнера. |
stop_timeout integer | Количество секунд ожидания остановки контейнера перед отправкой При остановке контейнера используется как таймаут для остановки контейнера. В случае если контейнер имеет пользовательскую конфигурацию |
storage_opts dictionary added in community.docker 1.3.0 | Параметры драйвера хранения для данного контейнера в виде сопоставления ключ-значение. |
sysctls dictionary | Словарь пар ключ-значение. |
timeout integer | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, будет использовано значение переменной окружения По умолчанию: |
tls boolean | Обеспечить безопасное соединение с API с использованием TLS без проверки подлинности хоста Docker. Обратите внимание, что если Если значение не указано в задаче, будет использовано значение переменной окружения Варианты:
|
tls_hostname string | При проверке подлинности хоста Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной окружения Обратите внимание, что в более ранних версиях этот параметр имел значение |
tmpfs list / elements=string | Монтирование временной директории tmpfs. |
tty boolean | Выделить псевдотерминал TTY. Если Варианты:
|
ulimits list / elements=string | Список параметров ulimit. Устанавливается как |
use_ssh_client boolean добавлен в community.docker 1.5.0 | Для SSH-транспортов использовать инструмент Варианты:
|
user string | Устанавливает имя пользователя или UID, а также необязательно имя группы или GID для указанной команды. Может быть в формате |
userns_mode string | Установить режим пространства имён пользователя для контейнера. В настоящее время допустимы только |
uts string | Установить режим пространства имён UTS для контейнера. |
validate_certs aliases: tls_verify boolean | Обеспечить безопасное соединение с API с использованием TLS и проверкой подлинности хоста Docker. Если значение не указано в задаче, будет использовано значение переменной окружения Варианты:
|
volume_driver string | Драйвер контейнерных томов. |
volumes list / elements=string | Список томов для монтирования внутри контейнера. Используйте синтаксис docker CLI: Режимы монтирования могут быть перечислены через запятую, такими как SELinux-хосты могут дополнительно использовать Обратите внимание, что Ansible 2.7 и более ранние версии поддерживали только один режим, который должен был быть одним из |
volumes_from list / elements=string | Список имён или ID контейнеров для получения томов. |
working_dir string | Путь к рабочей директории. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: частичная При попытке скачать образ, модуль предполагает, что он не изменится в режиме проверки, за исключением случаев, когда образа нет на Docker-демоне. Это поведение можно настроить с помощью | Может работать в режиме |
diff_mode | Поддержка: полная | В режиме сравнения вернёт информацию о том, что изменилось (или, возможно, требует изменения в |
Примечания
Примечание
- Для большинства изменений конфигурации необходимо пересоздать контейнер. Это означает, что существующий контейнер должен быть уничтожен, и создан новый. Это может привести к непредвиденной потере данных и простоям. Вы можете использовать опцию
comparisons, чтобы этого избежать. - Если модулю необходимо пересоздать контейнер, он будет использовать только опции, предоставленные модулю для создания нового контейнера (кроме
image). Поэтому всегда указывайте все опции, относящиеся к контейнеру. - Когда
restartустановлено вtrue, модуль будет перезапускать контейнер только в случае отсутствия изменений конфигурации. - Подключение к 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 SDK for Python для взаимодействия с Docker-демоном. Он использует код, полученный из Docker SDK или Python, который включён в данную коллекцию.
Примеры
- name: Create a data container
community.docker.docker_container:
name: mydata
image: busybox
volumes:
- /data
- name: Re-create a redis container
community.docker.docker_container:
name: myredis
image: redis
command: redis-server --appendonly yes
state: present
recreate: true
exposed_ports:
- 6379
volumes_from:
- mydata
- name: Restart a container
community.docker.docker_container:
name: myapplication
image: someuser/appimage
state: started
restart: true
links:
- "myredis:aliasedredis"
devices:
- "/dev/sda:/dev/xvda:rwm"
ports:
# Publish container port 9000 as host port 8080
- "8080:9000"
# Publish container UDP port 9001 as host port 8081 on interface 127.0.0.1
- "127.0.0.1:8081:9001/udp"
# Publish container port 9002 as a random host port
- "9002"
# Publish container port 9003 as a free host port in range 8000-8100
# (the host port will be selected by the Docker daemon)
- "8000-8100:9003"
# Publish container ports 9010-9020 to host ports 7000-7010
- "7000-7010:9010-9020"
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
community.docker.docker_container:
name: mycontainer
state: present
image: ubuntu:14.04
command: sleep infinity
- name: Stop a container
community.docker.docker_container:
name: mycontainer
state: stopped
- name: Start 4 load-balanced containers
community.docker.docker_container:
name: "container{{ item }}"
recreate: true
image: someuser/anotherappimage
command: sleep 1d
with_sequence: count=4
- name: Remove container
community.docker.docker_container:
name: ohno
state: absent
- name: Syslogging output
community.docker.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
community.docker.docker_container:
name: db_test
image: "postgres:latest"
networks:
- name: "{{ docker_network_name }}"
- name: Start container, connect to network and link
community.docker.docker_container:
name: sleeper
image: ubuntu:14.04
networks:
- name: TestingNet
ipv4_address: "172.16.1.100"
aliases:
- sleepyzz
links:
- db_test:db
- name: TestingNet2
- name: Start a container with a command
community.docker.docker_container:
name: sleepy
image: ubuntu:14.04
command: ["sleep", "infinity"]
- name: Add container to networks
community.docker.docker_container:
name: sleepy
networks:
- name: TestingNet
ipv4_address: 172.16.1.18
links:
- sleeper
- name: TestingNet2
ipv4_address: 172.16.10.20
- name: Update network with aliases
community.docker.docker_container:
name: sleepy
networks:
- name: TestingNet
aliases:
- sleepyz
- zzzz
- name: Remove container from one network
community.docker.docker_container:
name: sleepy
networks:
- name: TestingNet2
comparisons:
networks: strict
- name: Remove container from all networks
community.docker.docker_container:
name: sleepy
comparisons:
networks: strict
- name: Start a container and use an env file
community.docker.docker_container:
name: agent
image: jenkinsci/ssh-slave
env_file: /var/tmp/jenkins/agent.env
- name: Create a container with limited capabilities
community.docker.docker_container:
name: sleepy
image: ubuntu:16.04
command: sleep infinity
capabilities:
- sys_time
cap_drop:
- all
- name: Finer container restart/update control
community.docker.docker_container:
name: test
image: ubuntu:18.04
env:
arg1: "true"
arg2: "whatever"
volumes:
- /tmp:/tmp
comparisons:
image: ignore # do not 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
community.docker.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
community.docker.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
start_interval: 10s
- name: Remove healthcheck from container
community.docker.docker_container:
name: nginx-proxy
image: nginx:1.13
state: started
healthcheck:
# The "NONE" check needs to be specified
test: ["NONE"]
- name: Create a tmpfs with a size and mode
community.docker.docker_container:
name: tmpfs test
image: ubuntu:22.04
state: started
mounts:
- type: tmpfs
target: /cache
tmpfs_mode: "1700" # only readable to the owner
tmpfs_size: "16G"
- name: Start container with block device read limit
community.docker.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
- name: Start container with GPUs
community.docker.docker_container:
name: test
image: ubuntu:18.04
state: started
device_requests:
- # Add some specific devices to this container
device_ids:
- '0'
- 'GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a'
- # Add nVidia GPUs to this container
driver: nvidia
count: -1 # this means we want all
capabilities:
# We have one OR condition: 'gpu' AND 'utility'
- - gpu
- utility
# See https://github.com/NVIDIA/nvidia-container-runtime#supported-driver-capabilities
# for a list of capabilities supported by the nvidia driver
- name: Start container with storage options
community.docker.docker_container:
name: test
image: ubuntu:18.04
state: started
storage_opts:
# Limit root filesystem to 12 MB - note that this requires special storage backends
# (https://fabianlee.org/2020/01/15/docker-use-overlay2-with-an-xfs-backing-filesystem-to-limit-rootfs-size/)
size: 12m
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
container словарь | Факты, представляющие текущее состояние контейнера. Соответствует выводу docker inspection. Пусто, если Если Возвращается: успех; или когда Пример: |
status целое число | В случае запуска контейнера без отделения, это содержит код завершения процесса в контейнере. До версии community.docker 1.1.0, это возвращалось только при ненулевом значении. Возвращается: когда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/docker/docker_container_module.html