Spec-Zone.ru › Ansible 2.6

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
bool

(добавлено в 2.0)
    Варианты:
  • нет ←
  • да
Добавить возможности для контейнера.
Требуется docker-py >= 0.5.0.
cap_drop
bool

(добавлено в 2.0)
    Варианты:
  • нет ←
  • да
Удалить возможности для контейнера.
Требуется docker-py >= 0.5.0.
command
Команда, используемая для сопоставления и запуска контейнеров.
count Значение по умолчанию:
1
Количество сопоставленных контейнеров, которые должны быть в нужном состоянии.
cpu_set
(добавлено в 2.0)
Процессоры, в которых разрешено выполнение.
Требуется docker-py >= 0.6.0.
cpu_shares
(добавлено в 2.1)
Значение по умолчанию:
0
Удельные веса процессора.
Требуется docker-py >= 0.6.0.
detach
bool
    Варианты:
  • нет
  • да ←
Включить режим открепления для запуска контейнера в фоновом режиме. При отключении, произойдет ошибка, если процесс не завершился корректно.
devices
(добавлено в 2.1)
Список устройств хоста для экспонирования контейнеру.
dns
Список пользовательских DNS-серверов для контейнера.
docker_api_version
(добавлено в 1.8)
Значение по умолчанию:
"docker-py default remote API version"
Версия удаленного API для использования. По умолчанию используется текущая версия по умолчанию, указанная в docker-py.
docker_url Значение по умолчанию:
"${DOCKER_HOST} or 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
bool

(добавлено в 1.9)
    Варианты:
  • нет ←
  • да
Использовать небезопасный частный реестр через 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
bool

(добавлено в 1.8)
    Варианты:
  • нет ←
  • да
Режим сети для запущенного контейнера: bridge, none, container:<name|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
bool
    Варианты:
  • нет ←
  • да
Выполнять контейнер в привилегированном режиме или нет.
publish_all_ports
bool

(добавлено в 1.5)
    Варианты:
  • нет ←
  • да
Опубликовать все экспонированные порты на интерфейсы хоста.
pull
(добавлено в 1.9)
    Варианты:
  • всегда
  • отсутствует ←
Управление тем, когда изображения контейнеров обновляются из реестра docker_url.
Если missing, изображения будут загружаться только при отсутствии на хосте;
если always, каждый раз при выполнении задачи реестр будет проверять наличие более новой версии изображения.
read_only
(добавлено в 2.0)
Подмонтировать корневую файловую систему контейнера в режиме только для чтения.
registry
(добавлено в 1.8)
Значение по умолчанию:
"DockerHub"
URL удаленного реестра для загрузки изображений.
END_OF_DOCUMENT_MARKER
restart_policy
(добавлено в 1.9)
    Варианты:
  • always
  • no
  • on-failure
  • unless-stopped
Политика перезапуска контейнера.
Вариант 'unless-stopped' доступен начиная с Ansible 2.1 и Docker 1.9 и выше.
restart_policy_retry
(добавлено в 1.9)
По умолчанию:
0
Максимальное количество попыток перезапуска контейнера.
Оставьте "0" для неограниченного числа попыток.
signal
(добавлено в 2.0)
По умолчанию:
"KILL"
При состоянии "killed", можно изменить сигнал, отправляемый контейнеру.
state
    Варианты:
  • absent
  • killed
  • present
  • reloaded
  • restarted
  • started ←
  • stopped
Установите желаемое состояние контейнера. «present» только подтверждает, что соответствующие контейнеры существуют. «started» подтверждает, что соответствующие контейнеры существуют и работают, но не выполняет никаких действий, если какие-либо конфигурации изменились. «reloaded» (добавлено в Ansible 1.9) подтверждает, что все соответствующие контейнеры работают и перезапускает те, у которых устарели изображения или конфигурации. «restarted» безусловно перезапускает (или запускает) соответствующие контейнеры. «stopped» и «killed» останавливают и убивают все соответствующие контейнеры. «absent» останавливает и удаляет все соответствующие контейнеры.
stdin_open
bool

(добавлено в 1.6)
    Варианты:
  • no ←
  • yes
Удерживать stdin открытым после запуска контейнера.
stop_timeout
(добавлено в 2.0)
По умолчанию:
10
Сколько секунд ждать остановки контейнера перед его уничтожением.
timeout
(добавлено в 2.1)
По умолчанию:
60
Таймаут ответа демона Docker в секундах.
tls_ca_cert
(добавлено в 1.9)
По умолчанию:
"${DOCKER_CERT_PATH}/ca.pem"
Путь к PEM-кодированному сертификату центра сертификации для обеспечения безопасности подключения Docker. Это не имеет эффекта, если use_tls равно encrypt.
tls_client_cert
(добавлено в 1.9)
По умолчанию:
"${DOCKER_CERT_PATH}/cert.pem"
Путь к PEM-кодированному сертификату, используемому для аутентификации клиента Docker. Если указан tls_client_key, он должен быть корректным.
tls_client_key
(добавлено в 1.9)
По умолчанию:
"${DOCKER_CERT_PATH}/key.pem"
Путь к PEM-кодированному ключу, используемому для аутентификации клиента Docker. Если указан tls_client_cert, он должен быть корректным.
tls_hostname
(добавлено в 1.9)
По умолчанию:
"Взято из docker_url"
Имя хоста для проверки соответствия предоставленному в сертификате сервера Docker. Если не указано, имя хоста берется из docker_url.
tty
bool

(добавлено в 1.6)
    Варианты:
  • no ←
  • yes
Выделить псевдо-терминал внутри контейнера.
ulimits
(добавлено в 2.1)
ulimits, список ulimits с именем, мягким и (необязательно) жёстким лимитами, разделёнными двоеточиями. Например: nofile:1024:2048
Требуется docker-py >= 1.2.0 и docker >= 1.6.0
use_tls
(добавлено в 1.9)
    Варианты:
  • encrypt
  • no
  • verify
Использовать TLS для подключения к серверу Docker. «no» — не использовать TLS (и игнорировать другие параметры TLS). «encrypt» — использовать TLS для шифрования подключения к серверу. «verify» — также проверить, что сертификат сервера действителен для сервера (это проверяет сертификат по отношению к CA и что сертификат выпущен для этого хоста. Если это не указано, 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.6/modules/docker_module.html

Spec-Zone.ru

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