Модуль community.docker.docker_container — управление контейнерами Docker
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.docker. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.docker.docker_container.
Краткое описание
- Управление жизненным циклом контейнеров Docker.
- Поддерживается режим проверки. Запустите с параметрами
--checkи--diff, чтобы просмотреть различия в конфигурации и список действий, которые будут выполнены.
Требования
Следующие требования должны быть соблюдены на хосте, который выполняет этот модуль.
- Docker API >= 1.25
- paramiko (при использовании SSH с
use_ssh_client=false) - pyOpenSSL (при использовании TLS)
- pywin32 (при использовании именованных каналов в Windows 32)
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version string | Версия Docker API, работающая на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и демоном Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения По умолчанию: |
auto_remove boolean | Включить автоматическое удаление контейнера на стороне демона после завершения процесса контейнера. Если Варианты:
|
blkio_weight integer | Относительный вес блочного ввода-вывода (Block IO), от 10 до 1000. |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path path | Использовать сертификат центра сертификации (CA) для проверки сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и задана переменная окружения Ранее этот параметр назывался |
cap_drop list / elements=string | Список возможностей, которые нужно удалить из контейнера. |
capabilities list / elements=string | Список возможностей, которые нужно добавить в контейнер. Это эквивалентно |
cgroup_parent string добавлен в community.docker 1.1.0 | Указать родительскую группу cgroup для контейнера. |
cgroupns_mode string добавлен в community.docker 3.0.0 | Указать режим пространства имён cgroup для контейнера. В Docker CLI этот параметр называется просто Варианты:
|
cleanup boolean | Использовать с Варианты:
|
client_cert псевдонимы: tls_client_cert, cert_path path | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче и задана переменная окружения |
client_key псевдонимы: tls_client_key, key_path path | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче и задана переменная окружения |
command any | Команда, выполняемая при запуске контейнера. Команда может быть строкой или списком. До версии 2.4 строки разбивались по запятым. См. |
command_handling string добавлен в community.docker 1.9.0 | По умолчанию Кроме того, если для Если задано значение Если задано значение Варианты:
|
comparisons dictionary | Позволяет указать, как сравнивать свойства существующих контейнеров с параметрами модуля, чтобы определить, нужно ли пересоздать или обновить контейнер. Можно указать только параметры, соответствующие состоянию контейнера, управляемому демоном Docker, а также Должен быть словарём, в котором для параметра указано одно из значений: Если указано Значение Подстановочный параметр Подробности см. в примерах. |
container_default_behavior string | В предыдущих версиях этого модуля для различных параметров модуля использовались значения по умолчанию. Это вызывало проблемы с контейнерами, в которых для этих параметров были заданы другие значения. Теперь по умолчанию используется значение Это влияет на параметры Варианты:
|
cpu_period integer | Ограничить период CFS (Completely Fair Scheduler) процессора. Более простой в использовании альтернативный параметр см. в |
cpu_quota integer | Ограничить квоту CFS (Completely Fair Scheduler) процессора. Более простой в использовании альтернативный параметр см. в |
integer | Доли процессорного времени (относительный вес). |
cpus float | Указать, какую долю доступных ресурсов процессора может использовать контейнер. Значение |
cpuset_cpus string | Процессоры, на которых разрешено выполнение. Например, |
cpuset_mems string | Узлы памяти (MEMs), на которых разрешено выполнение: |
debug boolean | Режим отладки Варианты:
|
default_host_ip string добавлен в community.docker 1.2.0 | Задать IP-адрес хоста, используемый по умолчанию. Должен быть пустой строкой, адресом IPv4 или адресом IPv6. В Docker 20.10.2 или новее следует задать пустую строку ( По умолчанию модуль попытается автоматически определить это значение по параметру |
detach boolean | Включить отсоединённый режим, чтобы контейнер продолжал работать в фоновом режиме. Если параметр отключён, состояние задачи будет отражать результат запуска контейнера (задача завершится ошибкой, если команда завершилась с ошибкой). Если Варианты:
|
device_cgroup_rules list / elements=string добавлен в community.docker 3.11.0 | Список правил cgroup, применяемых к контейнеру. |
device_read_bps list / elements=dictionary | Список путей к устройствам и скоростей чтения с устройств (байт в секунду). |
|
path string / обязательный |
Путь к устройству в контейнере. |
|
rate string / обязательный |
Ограничение скорости чтения устройства в формате Число должно быть положительным целым числом. Единицей измерения может быть Если единица измерения не указана, используются байты. |
device_read_iops list / elements=dictionary | Список устройств и скорости чтения с устройств (операций ввода-вывода в секунду). |
|
path string / обязательный |
Путь к устройству в контейнере. |
|
rate integer / обязательный |
Ограничение скорости чтения устройства. Должно быть положительным целым числом. |
device_requests list / elements=dictionary добавлен в community.docker 0.1.0 | Позволяет запрашивать дополнительные ресурсы, например GPU. |
|
capabilities list / elements=list |
Список списков строк для запроса возможностей. Элементы верхнего уровня объединяются по логическому ИЛИ, а элементы каждого вложенного списка — по логическому И. Драйвер пытается удовлетворить требования одного из вложенных списков. Доступные возможности драйвера |
|
count integer |
Количество запрашиваемых устройств. Задайте |
|
device_ids list / elements=string |
Список идентификаторов устройств. |
|
driver string |
Драйвер, используемый для этого устройства. |
|
options dictionary |
Параметры, специфичные для драйвера. |
device_write_bps list / elements=dictionary | Список устройств и скоростей записи на устройства (байт в секунду). |
|
path string / обязательный |
Путь к устройству в контейнере. |
|
rate string / обязательный |
Ограничение скорости чтения устройства в формате Число должно быть положительным целым числом. Единицей измерения может быть Если единица измерения не указана, используются байты. |
device_write_iops list / elements=dictionary | Список устройств и скорости записи на устройства (операций ввода-вывода в секунду). |
|
path string / обязательный |
Путь к устройству в контейнере. |
|
rate integer / обязательный |
Ограничение скорости чтения устройства. Должно быть положительным целым числом. |
devices list / elements=string | Список привязок устройств хоста, добавляемых в контейнер. Каждая привязка задаётся в формате |
dns_opts list / elements=string | Список параметров DNS. |
dns_search_domains list / elements=string | Список пользовательских доменов поиска DNS. |
dns_servers list / elements=string | Список пользовательских DNS-серверов. |
docker_host псевдонимы: docker_url string | URL или путь к сокету Unix, используемые для подключения к API Docker. Для подключения к удаленному хосту укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него будет использоваться значение переменной окружения По умолчанию: |
domainname string | Доменное имя контейнера. |
entrypoint list / elements=string | Команда, переопределяющая значение См. |
env dictionary | Словарь пар «ключ — значение». Значения, которые YAML-парсер может интерпретировать как числа, логические значения или другие типы, необходимо заключать в кавычки (например, Обратите внимание: если вы передаете значения с помощью шаблонов Jinja2, например |
env_file path | |
etc_hosts dictionary | Словарь сопоставлений имен хостов и IP-адресов, где каждое имя хоста является ключом словаря. Каждое имя хоста будет добавлено в файл Вместо IP-адреса также можно использовать специальное значение |
exposed_ports псевдонимы: exposed, expose list / elements=string | Список дополнительных портов контейнера, сообщающий Docker, что контейнер во время выполнения прослушивает указанные сетевые порты. Если порт уже открыт с помощью |
force_kill псевдонимы: forcekill boolean | Использовать команду kill при остановке работающего контейнера. Варианты:
|
groups list / elements=string | Список дополнительных имен и/или идентификаторов групп, от имени которых будет работать процесс контейнера. |
healthcheck dictionary | Настройка проверки, которая определяет, являются ли контейнеры этой службы «исправными». Подробные сведения о работе проверок состояния см. в документации по инструкции Dockerfile HEALTHCHECK. Параметры См. также |
|
interval string |
Интервал между выполнениями проверки. По умолчанию демон Docker использует |
|
retries integer |
Количество последовательных сбоев, необходимое для признания контейнера неисправным. По умолчанию демон Docker использует |
|
start_interval string добавлено в community.docker 3.10.0 |
Интервал между проверками состояния в течение начального периода. Для этого параметра требуется Docker Engine версии 25.0 или более поздней. По умолчанию демон Docker использует |
|
start_period string |
Начальный период, в течение которого контейнер может инициализироваться до начала отсчета повторных проверок состояния. По умолчанию демон Docker использует |
|
test any |
Команда для проверки состояния. Должна быть строкой или списком. Если задан список, его первый элемент должен быть одним из следующих: |
|
test_cli_compatible boolean добавлено в community.docker 3.10.0 |
Если задано значение Если задано значение Варианты:
|
|
timeout string |
Максимальное время выполнения одной проверки. По умолчанию демон Docker использует |
healthy_wait_timeout float добавлено в community.docker 3.11.0 | При ожидании перехода контейнера в состояние готовности, если задано Тайм-аут задается в секундах. Значение по умолчанию, Задайте значение 0 или отрицательное значение, чтобы ждать бесконечно. Обратите внимание: в зависимости от контейнера модуль может не завершить работу. По умолчанию: |
hostname string | Имя хоста контейнера. |
image string | Путь к репозиторию и тег, используемые для создания контейнера. Если образ не найден или параметр pull имеет значение true, образ будет загружен из реестра. Если тег не указан, будет использоваться Также может быть указан идентификатор образа. В этом случае предполагается, что образ доступен локально. Параметр |
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 4.0.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 псевдонимы: log_opt dictionary | Словарь параметров, относящихся к выбранному Подробные сведения см. на странице https://docs.docker.com/engine/admin/logging/overview/. Чтобы |
mac_address string | MAC-адрес контейнера (например, Обратите внимание: глобальный MAC-адрес контейнера объявлен устаревшим и больше не используется начиная с версии API Docker 1.44. Вместо него используйте |
memory string | Ограничение памяти в формате Если единица измерения не указана, используются байты. Если задано |
memory_reservation string | Мягкое ограничение памяти в формате Если единица измерения не указана, используются байты. |
memory_swap string | Общий лимит памяти (память + подкачка) в формате Если единица измерения не указана, используются байты. |
memory_swappiness integer | Настроить поведение подкачки памяти контейнера. Принимает целое число от 0 до 100. Если значение не задано, для существующего контейнера оно останется прежним, а при создании или пересоздании контейнера будет унаследовано от хоста. |
mounts list / elements=dictionary | Описание монтирований, добавляемых в контейнер. Более гибкая альтернатива |
|
consistency string |
Требование согласованности для монтирования. Варианты:
|
|
create_mountpoint boolean добавлено в community.docker 4.8.0 |
Создать точку монтирования на хосте, если она отсутствует. Требуется Docker API версии 1.42 или выше. Допустимо только для типа Варианты:
|
|
labels dictionary |
Задаваемые пользователем имя и метки тома. Допустимо только для типа |
|
no_copy boolean |
Значение false означает, что том следует заполнить данными из целевого расположения. Допустимо только для типа Значение по умолчанию — Варианты:
|
|
non_recursive boolean добавлено в community.docker 4.8.0 |
Отключить рекурсивное монтирование bind. Требуется Docker API 1.40+. Допустимо только для Варианты:
|
|
propagation string |
Режим распространения. Допустимо только для типа Варианты:
|
|
read_only boolean |
Должно ли монтирование быть доступно только для чтения. Варианты:
|
|
read_only_force_recursive boolean добавлено в community.docker 4.8.0 |
Выдать ошибку, если монтирование не удается сделать рекурсивно доступным только для чтения. Требуется Docker API 1.44+. Допустимо только для Варианты:
|
|
read_only_non_recursive boolean добавлено в community.docker 4.8.0 |
Сделать монтирование доступным только для чтения без рекурсии, но при этом сохранить рекурсивность монтирования (если только NonRecursive одновременно не задано значение true). Требуется Docker API 1.44+. Допустимо только для Варианты:
|
|
source string |
Источник монтирования. Например, это может быть имя тома или путь на хосте. Если не указано при |
|
subpath string добавлено в community.docker 4.8.0 |
Путь к источнику внутри тома/образа. Должен быть относительным и не содержать переходов к родительским каталогам. Требуется Docker API 1.45+. Допустимо только для |
|
target string / обязательный |
Путь внутри контейнера. |
|
tmpfs_mode string |
Режим разрешений для монтирования tmpfs. |
|
tmpfs_options list / elements=dictionary добавлено в community.docker 4.8.0 |
Параметры, передаваемые монтированию tmpfs. Каждый элемент списка должен быть словарем с одним ключом и значением. Все ключи должны быть строками, а значения могут быть строками или Требуется Docker API 1.46+. Допустимо только для |
|
tmpfs_size string |
Размер монтирования tmpfs в байтах в формате <number>[<unit>]. Число — положительное целое. Единицей измерения может быть Если единица измерения не указана, по умолчанию используются байты. |
|
type string |
Тип монтирования. Обратите внимание, что Для Для Варианты:
|
|
volume_driver string |
Указать драйвер тома. Допустимо только для типа Подробности см. здесь. |
|
volume_options dictionary |
Словарь параметров, относящихся к выбранному volume_driver. Подробности см. здесь. |
name string / обязательный | Назначить имя новому контейнеру или найти существующий контейнер. При поиске существующего контейнера в качестве имени можно указать имя или длинный либо короткий идентификатор контейнера. |
network_mode string | Подключить контейнер к сети. Возможные значения: Начиная с community.docker 2.0.0, если |
networks list / elements=dictionary | Список сетей, к которым подключен контейнер. Примеры структуры данных и использования приведены ниже в разделе EXAMPLES. Чтобы отключить контейнер от одной или нескольких сетей, используйте Если |
|
aliases list / elements=string |
Список псевдонимов контейнера в этой сети. Эти имена можно использовать в сети для доступа к контейнеру. |
|
driver_opts dictionary добавлено в community.docker 5.0.0 |
Словарь параметров драйвера для этой конечной точки сети. Позволяет задавать параметры драйвера для конкретной конечной точки, например Требуется Docker API версии 1.32 или новее. |
|
gw_priority integer добавлено в community.docker 5.0.0 |
Приоритет шлюза для этой конечной точки сети. Если контейнер подключен к нескольким сетям, этот параметр определяет, шлюз какой сети будет использоваться по умолчанию. Чем выше значение, тем выше приоритет. Требуется Docker API версии 1.48 или новее. |
|
ipv4_address string |
Адрес IPv4 контейнера в этой сети. |
|
ipv6_address string |
Адрес IPv6 контейнера в этой сети. |
|
links list / elements=string |
Список контейнеров, с которыми нужно установить связь. |
|
mac_address string добавлено в community.docker 3.6.0 |
MAC-адрес конечной точки (например, Доступно только для Docker API версии 1.44 и новее. Обратите внимание: при подключении контейнера к сети после его создания Docker Daemon в настоящее время игнорирует это значение, по крайней мере в некоторых случаях. При передаче значения во время создания оно, похоже, работает лучше. |
|
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 | Задать ограничение на число PID контейнера. Принимает целое число. Задайте |
platform string добавлено в community.docker 3.0.0 | Платформа контейнера в формате Обратите внимание: начиная с community.docker 3.5.0, модуль использует метаданные образа и информацию Docker daemon для нормализации строк платформы, подобно тому, как это делает сам Docker. Если вы заметили проблемы с идемпотентностью, проверьте, сохраняется ли проблема в последнем выпуске community.docker; если да, создайте issue в репозитории community.docker на GitHub. В более старых версиях community.docker можно использовать параметр |
privileged boolean | Предоставить контейнеру расширенные привилегии. Если Варианты:
|
publish_all_ports boolean добавлено в community.docker 1.8.0 | Опубликовать все порты на хосте. Все привязки портов, заданные в Варианты:
|
published_ports псевдонимы: ports list / elements=string | Список портов, публикуемых из контейнера на хост. Используйте синтаксис CLI Docker: Для исходных и целевых портов можно использовать диапазоны. Если указаны два диапазона разной длины, будет использован более короткий. Начиная с community.general 0.2.0, если длина диапазона исходных портов равна 1, порт будет назначен не первому порту диапазона назначения, а свободному порту в этом диапазоне. Такое же поведение используется в утилите командной строки Адреса привязки должны быть адресами IPv4 или IPv6. Имена хостов не допускаются. Это отличается от поведения утилиты командной строки Если указан параметр В предыдущих версиях этого модуля допускалось значение |
pull any | Если задано значение Если задано значение Если задано значение Примечание: образы загружаются только при указании имени. Если образ задан в виде идентификатора (хеша), загрузить его нельзя, и этот параметр игнорируется. Примечание: значения Варианты:
|
pull_check_mode_behavior string добавлено в community.docker 3.8.0 | Позволяет настроить поведение при Поскольку Docker daemon не предоставляет средств для проверки, приведет ли загрузка к изменению образа, по умолчанию модуль ведет себя так: Если задано значение Если задано значение Варианты:
|
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 использует |
state string |
Чтобы указать, что учитывать при сравнении конфигурации, см. параметр Используйте параметр Если контейнер требуется завершить принудительно, а не останавливать, когда его нужно остановить для пересоздания или потому что Используйте Варианты:
|
stop_signal string | Переопределяет сигнал по умолчанию, используемый для остановки контейнера. |
stop_timeout integer | Количество секунд ожидания остановки контейнера до отправки При остановке контейнера это значение используется как тайм-аут остановки. Если у контейнера задана пользовательская конфигурация |
storage_opts dictionary добавлено в 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 | Выделяет псевдотерминал (pseudo-TTY). Если Варианты:
|
ulimits list / elements=string | Список параметров ulimit. Параметр ulimit задаётся в виде |
use_ssh_client boolean добавлено в community.docker 1.5.0 | Для SSH-транспорта использует инструмент командной строки Варианты:
|
user string | Задаёт имя пользователя или UID и, при необходимости, имя группы или GID для указанной команды. Допустимые форматы: |
userns_mode string | Задаёт режим пространства имён пользователей для контейнера. В настоящее время допустимы только значение |
uts string | Задаёт режим пространства имён UTS для контейнера. |
validate_certs псевдонимы: tls_verify boolean | Защищает соединение с API с помощью TLS и проверяет подлинность сервера Docker. Если значение не задано в задаче, вместо него будет использоваться значение переменной среды Варианты:
|
volume_driver string | Драйвер томов контейнера. |
volumes list / elements=string | Список томов для подключения к контейнеру. Используйте синтаксис командной строки Docker: Режимы подключения могут быть представлены списком различных режимов через запятую, например На хостах с SELinux также можно использовать Обратите внимание: Ansible 2.7 и более ранние версии поддерживали только один режим, которым должно было быть одно из значений |
volumes_from list / elements=string | Список имён или идентификаторов контейнеров, из которых нужно получить тома. |
working_dir string | Путь к рабочему каталогу. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: частичная При попытке загрузить образ модуль предполагает, что в режиме проверки это не приведёт к изменениям, кроме случая, когда образ отсутствует в демоне Docker. Это поведение можно настроить с помощью | Может выполняться в режиме |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или возможных изменениях в |
idempotent | Поддержка: частичная Если задано | При повторном запуске с теми же аргументами вне режима проверки второй вызов не указывает на наличие изменений. При этом предполагается, что система, которой управляет модуль или которую он опрашивает, не изменилась существенным образом. |
Примечания
Примечание
- При большинстве изменений конфигурации контейнер необходимо пересоздать. Это означает, что существующий контейнер будет уничтожен, а вместо него создан новый. Это может привести к неожиданной потере данных и простою. Чтобы предотвратить это, можно использовать параметр
comparisons. - Если модулю потребуется пересоздать контейнер, для создания нового контейнера он использует только параметры, переданные модулю (за исключением
image). Поэтому всегда указывайте все параметры, относящиеся к контейнеру. - Если для
restartзадано значениеtrue, модуль перезапустит контейнер только в том случае, если изменений конфигурации не обнаружено. - Подключайтесь к демону Docker, передавая параметры в каждой задаче или задавая переменные среды. Можно определить
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,DOCKER_TLS,DOCKER_TLS_VERIFYиDOCKER_TIMEOUT. Если вы используете docker machine, запустите поставляемый с продуктом скрипт, который настраивает среду. Он задаст эти переменные за вас. Подробности см. на странице https://docs.docker.com/machine/reference/env/. - Этот модуль не использует Docker SDK для 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 dictionary | Факты, описывающие текущее состояние контейнера. Соответствуют результатам проверки Docker. Пусто, если Если Возвращается: при успешном выполнении; либо если Пример: |
status integer | Если контейнер запущен без отсоединения, содержит код завершения процесса в контейнере. До community.docker 1.1.0 значение возвращалось только в том случае, если оно было ненулевым. Возвращается: если Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_container_module.html