Spec-Zone.ru › Ansible 2.5

docker - управление контейнерами Docker

Новая версия с 1.4.

  • УСТЕРЕКС
  • Описание
    • Требования
  • Параметры
  • Примеры
  • Статус
    • Автор

УСТЕРЕКС

Удалено в Ansible:
версия: 2.4
Почему: Заменено специализированными модулями.
Альтернатива: Используйте docker_container и docker_image вместо этого.

Описание

  • Это исходный модуль Ansible для управления жизненным циклом контейнера Docker.
  • ПРИМЕЧАНИЕ - Доступны дополнительные и более новые модули. Для получения последних данных об оркестрации контейнеров с помощью Ansible посетите нашу Руководство по началу работы с Docker.

Требования

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

  • python >= 2.6
  • docker-py >= 0.3.0
  • Сервер docker >= 0.10.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
cap_add
(добавлен в 2.0)
    Варианты:
  • no ←
  • yes
Добавить возможности для контейнера.
Требуется docker-py >= 0.5.0.
cap_drop
(добавлен в 2.0)
    Варианты:
  • no ←
  • yes
Удалить возможности для контейнера.
Требуется docker-py >= 0.5.0.
command
Команда, используемая для сопоставления и запуска контейнеров.
count Значение по умолчанию:
1
Количество сопоставленных контейнеров, которые должны быть в нужном состоянии.
cpu_set
(добавлен в 2.0)
Процессоры, в которых разрешено выполнение.
Требуется docker-py >= 0.6.0.
cpu_shares
(добавлен в 2.1)
Значение по умолчанию:
0
CPU-доли (относительный вес).
Требуется docker-py >= 0.6.0.
detach
    Варианты:
  • no
  • yes ←
Включить режим отсоединения, чтобы оставить контейнер работающим в фоновом режиме. Если отключено, произойдет ошибка, если процесс не завершится правильно.
devices
(добавлен в 2.1)
Список устройств хоста, которые нужно экспонировать для контейнера.
dns
Список пользовательских DNS-серверов для контейнера.
docker_api_version
(добавлен в 1.8)
Значение по умолчанию:
стандартная версия удаленного API docker-py
Версия удаленного API, которую нужно использовать. По умолчанию используется текущая версия по умолчанию, указанная в docker-py.
docker_url Значение по умолчанию:
${DOCKER_HOST} или unix://var/run/docker.sock
URL хоста, на котором запущен демон docker. По умолчанию используется переменная среды DOCKER_HOST, если не указано иное.
docker_user
(добавлен в 2.0)
Имя пользователя или UID для использования внутри контейнера
domainname
Имя домена контейнера.
email
Адрес электронной почты удаленного API.
entrypoint
(добавлен в 2.1)
Соответствует параметру --entrypoint команды docker run и директиве ENTRYPOINT файла Dockerfile.
Используется для сопоставления и запуска контейнеров.
env
Передать контейнеру словарь переменных окружения.
env_file
(добавлен в 2.1)
Указать путь к файлу с переменными окружения (FOO=BAR). Если ключ-значение присутствует как в явно указанных параметрах (т.е. в 'env'), так и в файле окружения, явное значение будет иметь приоритет. Требуется docker-py >= 1.4.0.
expose
(добавлен в 1.5)
Список дополнительных портов контейнера, которые необходимо экспонировать для сопоставления портов или связей. Если порт уже экспонирован с помощью EXPOSE в Dockerfile, его не нужно экспонировать снова.
extra_hosts
(добавлен в 2.0)
Словарь пользовательских сопоставлений хост-IP, которые необходимо определить в контейнере
hostname
Имя хоста контейнера.
image
обязательно
Используемый образ контейнера для сопоставления и запуска контейнеров.
insecure_registry
(добавлен в 1.9)
    Варианты:
  • no ←
  • yes
Использовать небезопасный частный реестр по HTTP вместо HTTPS.
Необходимо для docker-py >= 0.5.0.
labels
(добавлен в 2.1)
Установить метки контейнера.
Требуется docker >= 1.6 и docker-py >= 1.2.0.
links
(добавлен в 1.5)
Список других контейнеров, которые необходимо связать с этим контейнером с необязательным.
псевдонимом. Используйте синтаксис docker CLI: redis:myredis.
log_driver
(добавлен в 2.0)
    Варианты:
  • awslogs
  • fluentd
  • gelf
  • journald
  • json-file ←
  • none
  • syslog
Можно указать другой драйвер логирования для контейнера, чем для демона.
awslogs - (добавлен в 2.1) Драйвер логирования Awslogs для Docker. Записывает сообщения журнала в AWS Cloudwatch Logs.
fluentd - Драйвер логирования Fluentd для Docker. Записывает сообщения журнала в "fluentd" (входящие данные).
gelf - Драйвер логирования Graylog Extended Log Format (GELF) для Docker. Записывает сообщения журнала в конечную точку GELF, например, Graylog или Logstash.
journald - Драйвер логирования Journald для Docker. Записывает сообщения журнала в "journald".
json-file - По умолчанию драйвер логирования для Docker. Записывает сообщения JSON в файл. Команда docker logs доступна только для этого драйвера логирования.
none - отключает любое логирование для контейнера.
syslog - Драйвер логирования Syslog для Docker. Записывает сообщения журнала в syslog. Команда docker logs недоступна для этого драйвера логирования.
Требуется docker >= 1.6.0.
log_opt
(добавлен в 2.0)
Дополнительные параметры для передачи драйверу логирования, выбранному выше. См. документацию Docker по `log-driver <https://docs.docker.com/reference/logging/overview/>` для получения дополнительной информации. Требуется docker >=1.7.0.
lxc_conf
Параметры конфигурации LXC, такие как lxc.aa_profile:unconfined.
memory_limit Значение по умолчанию:
0
ОЗУ, выделенное контейнеру в виде числа байт или в удобочитаемом формате, например, "512МБ".
Оставьте "0", чтобы не задавать ограничения.
name
(добавлен в 1.5)
Имя, используемое для сопоставления и уникального именования запущенных контейнеров. Явные имена используются для уникальной идентификации одного контейнера или для связей между контейнерами. Взаимоисключающее с "count", отличным от "1".
net
(добавлен в 1.8)
    Варианты:
  • no ←
  • yes
Режим сети для запущенного контейнера: bridge, none, container:<имя|id>
или host.
Требуется docker >= 0.11.
password
Пароль удаленного API.
pid
(добавлен в 1.9)
Установить режим пространства имен PID для контейнера (в настоящее время поддерживается только 'host').
Требуется docker-py >= 1.0.0 и docker >= 1.5.0
ports
(добавлен в 1.5)
Список, содержащий спецификацию сопоставления портов из частного в публичный. Используйте синтаксис docker 'CLI: 8000, 9000:8000, или 0.0.0.0:9000:8000', где 8000 - порт контейнера, 9000 - порт хоста, а 0.0.0.0 - интерфейс хоста. Порты контейнера должны быть экспонированы либо в Dockerfile, либо с помощью параметра expose.
privileged
    Варианты:
  • no ←
  • yes
Нужно ли запускать контейнер в привилегированном режиме или нет.
publish_all_ports
(добавлен в 1.5)
    Варианты:
  • no ←
  • yes
Опубликовать все экспонированные порты на интерфейсах хоста.
pull
(добавлен в 1.9)
    Варианты:
  • always
  • missing ←
Управление тем, когда образы контейнеров обновляются из реестра docker_url.
Если missing, образы будут извлекаться только при отсутствии на хосте;
если always, реестр будет проверяться на наличие новой версии образа каждый раз, когда выполняется задача.
read_only
(добавлен в 2.0)
Подмонтировать корневую файловую систему контейнера в режиме только для чтения.
registry
(добавлен в 1.8)
Значение по умолчанию:
DockerHub
URL удаленного реестра для извлечения образов.
restart_policy
(добавлен в 1.9)
    Варианты:
  • always
  • no
  • on-failure
  • unless-stopped
Политика перезапуска контейнера.
Выбор 'unless-stopped' доступен только начиная с Ansible 2.1 и Docker 1.9 и выше.
END_OF_DOCUMENT_MARKER
restart_policy_retry
(added in 1.9)
Default:
0
Максимальное количество попыток перезапуска контейнера.
Оставьте значение "0" для неограниченного количества попыток.
signal
(added in 2.0)
Default:
KILL
При состоянии "killed" можно изменить сигнал, отправленный контейнеру.
state
    Choices:
  • absent
  • killed
  • present
  • reloaded
  • restarted
  • started ←
  • stopped
Утверждение желаемого состояния контейнера. "present" только утверждает, что соответствующие контейнеры существуют. "started" утверждает, что соответствующие контейнеры существуют и работают, но не предпринимает никаких действий, если какая-либо конфигурация изменилась. "reloaded" (добавлено в Ansible 1.9) утверждает, что все соответствующие контейнеры работают и перезапускает любые, у которых обновлены изображения или конфигурация. "restarted" безусловно перезапускает (или запускает) соответствующие контейнеры. "stopped" и '"killed" останавливают и убивают все соответствующие контейнеры. "absent" останавливает и удаляет все соответствующие контейнеры.
stdin_open
(added in 1.6)
    Choices:
  • no ←
  • yes
Поддерживать stdin открытым после запуска контейнера.
stop_timeout
(added in 2.0)
Default:
10
Количество секунд ожидания остановки контейнера перед его уничтожением.
timeout
(added in 2.1)
Default:
60
Таймаут ответа демона Docker в секундах.
tls_ca_cert
(added in 1.9)
Default:
${DOCKER_CERT_PATH}/ca.pem
Путь к PEM-кодированному сертификату центров сертификации для защиты подключения Docker. Это не имеет эффекта, если use_tls равен encrypt.
tls_client_cert
(added in 1.9)
Default:
${DOCKER_CERT_PATH}/cert.pem
Путь к PEM-кодированному сертификату, используемому для аутентификации клиента Docker. Если указан tls_client_key, он должен быть действительным.
tls_client_key
(added in 1.9)
Default:
${DOCKER_CERT_PATH}/key.pem
Путь к PEM-кодированному ключу, используемому для аутентификации клиента Docker. Если указан tls_client_cert, он должен быть действительным.
tls_hostname
(added in 1.9)
Default:
Получено из docker_url
Имя хоста для проверки соответствия предоставленному в сертификате сервера Docker. Если не указано, имя хоста берется из docker_url.
tty
(added in 1.6)
    Choices:
  • no ←
  • yes
Выделить псевдотерминал внутри контейнера.
ulimits
(added in 2.1)
ulimits, список ограничений с именем, мягким и, необязательно, жестким лимитом, разделенными двоеточиями. Пример: nofile:1024:2048
Требуется docker-py >= 1.2.0 и docker >= 1.6.0
use_tls
(added in 1.9)
    Choices:
  • encrypt
  • no
  • verify
Использовать TLS для подключения к серверу Docker. "no" - не использовать TLS (и игнорировать другие параметры, связанные с TLS). "encrypt" - использовать TLS для шифрования подключения к серверу. "verify" - также проверить, что сертификат сервера действителен для сервера (это проверяет сертификат по отношению к центру сертификации и то, что сертификат выдан для этого хоста. Если не указано, TLS будет использоваться только если это необходимо по одному из других параметров TLS.
username
Имя пользователя удаленного API.
volumes
Список томов для монтирования внутри контейнера.
Используйте синтаксис docker CLI: /host:/container[:mode]
Можно указать режим чтения для монтирования с помощью ro или rw. Начиная с версии 2.1, хосты SELinux могут дополнительно использовать z или Z параметры монтирования, чтобы использовать общий или частный метки для тома.
volumes_from
Список имен контейнеров для монтирования томов.

Примеры

# Containers are matched either by name (if provided) or by an exact match of
# the image they were launched with and the command they're running. The module
# can accept either a name to target a container uniquely, or a count to operate
# on multiple containers at once when it makes sense to do so.

# Ensure that a data container with the name "mydata" exists. If no container
# by this name exists, it will be created, but not started.

- name: data container
  docker:
    name: mydata
    image: busybox
    state: present
    volumes:
    - /data

# Ensure that a Redis server is running, using the volume from the data
# container. Expose the default Redis port.

- name: redis container
  docker:
    name: myredis
    image: redis
    command: redis-server --appendonly yes
    state: started
    expose:
    - 6379
    volumes_from:
    - mydata

# Ensure that a container of your application server is running. This will:
# - pull the latest version of your application image from DockerHub.
# - ensure that a container is running with the specified name and exact image.
#   If any configuration options have changed, the existing container will be
#   stopped and removed, and a new one will be launched in its place.
# - link this container to the existing redis container launched above with
#   an alias.
# - grant the container read write permissions for the host's /dev/sda device
#   through a node named /dev/xvda
# - bind TCP port 9000 within the container to port 8080 on all interfaces
#   on the host.
# - bind UDP port 9001 within the container to port 8081 on the host, only
#   listening on localhost.
# - specify 2 ip resolutions.
# - set the environment variable SECRET_KEY to "ssssh".

- name: application container
  docker:
    name: myapplication
    image: someuser/appimage
    state: reloaded
    pull: always
    links:
    - "myredis:aliasedredis"
    devices:
    - "/dev/sda:/dev/xvda:rwm"
    ports:
    - "8080:9000"
    - "127.0.0.1:8081:9001/udp"
    extra_hosts:
      host1: "192.168.0.1"
      host2: "192.168.0.2"
    env:
      SECRET_KEY: ssssh

# Ensure that exactly five containers of another server are running with this
# exact image and command. If fewer than five are running, more will be launched;
# if more are running, the excess will be stopped.

- name: load-balanced containers
  docker:
    state: reloaded
    count: 5
    image: someuser/anotherappimage
    command: sleep 1d

# Unconditionally restart a service container. This may be useful within a
# handler, for example.

- name: application service
  docker:
    name: myservice
    image: someuser/serviceimage
    state: restarted

# Stop all containers running the specified image.

- name: obsolete container
  docker:
    image: someuser/oldandbusted
    state: stopped

# Stop and remove a container with the specified name.

- name: obsolete container
  docker:
    name: ohno
    image: someuser/oldandbusted
    state: absent

# Example Syslogging Output

- name: myservice container
  docker:
    name: myservice
    image: someservice/someimage
    state: reloaded
    log_driver: syslog
    log_opt:
      syslog-address: tcp://my-syslog-server:514
      syslog-facility: daemon
      syslog-tag: myservice

Статус

Этот модуль помечен как устаревший и будет удален в версии 2.4. Дополнительную информацию см. в УСТАРЕВШИЕ.

Автор

  • Cove Schneider (@cove)
  • Joshua Conner (@joshuaconner)
  • Pavel Antonov (@softzilla)
  • Thomas Steinbach (@ThomasSteinbach)
  • Philippe Jandot (@zfil)
  • Daan Oosterveld (@dusdanig)

Подсказка

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

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

Spec-Zone.ru

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