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 | Имя домена контейнера. | |
| Электронная почта удаленного 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 - (добавлено в 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 удаленного реестра для загрузки изображений. |
| restart_policy (добавлено в 1.9) |
| Политика перезапуска контейнера. Вариант 'unless-stopped' доступен начиная с Ansible 2.1 и Docker 1.9 и выше. |
| restart_policy_retry (добавлено в 1.9) | По умолчанию: 0 | Максимальное количество попыток перезапуска контейнера. Оставьте "0" для неограниченного числа попыток. |
| signal (добавлено в 2.0) | По умолчанию: "KILL" | При состоянии "killed", можно изменить сигнал, отправляемый контейнеру. |
| state |
| Установите желаемое состояние контейнера. «present» только подтверждает, что соответствующие контейнеры существуют. «started» подтверждает, что соответствующие контейнеры существуют и работают, но не выполняет никаких действий, если какие-либо конфигурации изменились. «reloaded» (добавлено в Ansible 1.9) подтверждает, что все соответствующие контейнеры работают и перезапускает те, у которых устарели изображения или конфигурации. «restarted» безусловно перезапускает (или запускает) соответствующие контейнеры. «stopped» и «killed» останавливают и убивают все соответствующие контейнеры. «absent» останавливает и удаляет все соответствующие контейнеры. |
| stdin_open bool (добавлено в 1.6) |
| Удерживать 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) |
| Выделить псевдо-терминал внутри контейнера. |
| ulimits (добавлено в 2.1) | ulimits, список ulimits с именем, мягким и (необязательно) жёстким лимитами, разделёнными двоеточиями. Например: nofile:1024:2048
Требуется docker-py >= 1.2.0 и docker >= 1.6.0 | |
| use_tls (добавлено в 1.9) |
| Использовать 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