Spec-Zone.ru › Ansible 2.9

docker_image – Управление образами docker

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Сборка, загрузка или получение образа, делая образ доступным для создания контейнеров. Также поддерживает добавление тега к образу в репозиторий и архивирование образа в файл .tar.
  • Начиная с Ansible 2.8, рекомендуется явно указывать источник образа (source может быть build, load, pull или local). Это станет обязательным начиная с Ansible 2.12.

Требования

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

  • Docker API >= 1.20
  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (см. здесь для получения подробностей). Для Python 2.6 необходимо использовать docker-py. В противном случае рекомендуется установить модуль Python docker. Обратите внимание, что оба модуля не должны быть установлены одновременно. Также обратите внимание, что при установке и последующей деинсталляции одного из модулей другой может перестать работать, и потребуется его повторная установка.
  • Docker SDK для Python >= 1.8.0 (используйте docker-py для Python 2.6)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_version
строка
Значение по умолчанию:
"auto"
Версия Docker API, работающая на Docker Host.
По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не задана, будет использовано значение по умолчанию.

псевдонимы: docker_api_version
archive_path
путь
Используйте со значением present для архивирования образа в файл .tar.
build
словарь
добавлен в 2.8
Указывает параметры, используемые для сборки образов.
args
словарь
Предоставьте словарь key:value аргументов сборки, которые соответствуют директивам Dockerfile ARG.
Docker ожидает, что значение будет строкой. Для удобства любые значения, отличные от строки, будут преобразованы в строки.
Требуется Docker API >= 1.21.
cache_from
список / элементы=строка
Список имён образов, которые следует рассматривать как источник кеша.
container_limits
словарь
Словарь ограничений, применяемых к каждому контейнеру, создаваемому процессом сборки.
cpusetcpus
строка
Процессоры, разрешенные для выполнения, например, "0-3", "0,1".
cpushares
целое число
CPU доли (относительный вес).
memory
целое число
Установить предел памяти для сборки.
memswap
целое число
Общая память (память + своп), -1 для отключения свопа.
dockerfile
строка
Используйте со значением present и источником build для предоставления альтернативного имени Dockerfile для использования при сборке образа.
Это также может включать относительный путь (относительно path).
etc_hosts
словарь
добавлен в 2.9
Дополнительные хосты для добавления в /etc/hosts при создании контейнеров в виде отображения имени хоста на IP-адрес.
http_timeout
целое число
Таймаут для HTTP-запросов во время операции сборки образа. Укажите положительное целое значение в секундах.
network
строка
Сеть для использования для RUN инструкций сборки.
nocache
булево
    Варианты:
  • нет ←
  • да
Не использовать кеш при сборке образа.
path
путь / обязательно
Используйте со значением 'present' для сборки образа. Будет указан путь к каталогу, содержащему контекст и Dockerfile для сборки образа.
pull
булево
    Варианты:
  • нет
  • да
При сборке образа загружает любые обновления для образа FROM в Dockerfile.
По умолчанию сейчас yes. Это изменится на no в Ansible 2.12.
rm
булево
    Варианты:
  • нет
  • да ←
Удалить промежуточные контейнеры после сборки.
target
строка
добавлен в 2.9
При сборке образа указывает промежуточную стадию сборки по имени как конечную стадию для результирующего образа.
use_config_proxy
булево
    Варианты:
  • нет
  • да
Если установлено yes и в конфигурации клиента docker указана конфигурация прокси (по умолчанию $HOME/.docker/config.json), соответствующие переменные среды будут установлены в строящемся контейнере.
Требуется Docker SDK для Python >= 3.7.0.
buildargs
словарь
Предоставьте словарь key:value аргументов сборки, которые соответствуют директивам Dockerfile ARG.
Docker ожидает, что значение будет строкой. Для удобства любые значения, отличные от строки, будут преобразованы в строки.
Требуется Docker API >= 1.21.
Пожалуйста, используйте build.args вместо этого. Этот параметр будет удален в Ansible 2.12.
ca_cert
путь
Используйте сертификат CA при проверке сервера, указав путь к файлу сертификата CA.
Если значение не указано в задаче и переменная среды DOCKER_CERT_PATH установлена, будет использован файл ca.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

псевдонимы: tls_ca_cert, cacert_path
client_cert
путь
Путь к файлу сертификата TLS клиента.
Если значение не указано в задаче и переменная среды DOCKER_CERT_PATH установлена, будет использован файл cert.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

псевдонимы: tls_client_cert, cert_path
client_key
путь
Путь к файлу ключа TLS клиента.
Если значение не указано в задаче и переменная среды DOCKER_CERT_PATH установлена, будет использован файл key.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

псевдонимы: tls_client_key, key_path
container_limits
словарь
Словарь ограничений, применяемых к каждому контейнеру, создаваемому процессом сборки.
Пожалуйста, используйте build.container_limits вместо этого. Этот параметр будет удален в Ansible 2.12.
cpusetcpus
строка
Процессоры, разрешенные для выполнения, например, "0-3", "0,1".
cpushares
целое число
CPU доли (относительный вес).
memory
целое число
Установить предел памяти для сборки.
memswap
целое число
Общая память (память + своп), -1 для отключения свопа.
debug
булево
    Варианты:
  • нет ←
  • да
Режим отладки
docker_host
строка
Значение по умолчанию:
"unix://var/run/docker.sock"
URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удалённому хосту укажите строку TCP-соединения. Например, tcp://192.0.2.23:2376. Если для шифрования соединения используется TLS, модуль автоматически заменит tcp в URL соединения на https.
Если значение не указано в задании, используется значение переменной окружения DOCKER_HOST. Если переменная окружения не задана, используется значение по умолчанию.

псевдонимы: docker_url
dockerfile
строка
Используйте со state present и source build для указания альтернативного имени Dockerfile при построении образа.
Также может содержать относительный путь (относительно path).
Пожалуйста, используйте build.dockerfile вместо этого. Этот параметр будет удалён в Ansible 2.12.
force
логическое значение
    Варианты:
  • no
  • yes
Используйте со state absent для снятия тега и удаления всех образов, соответствующих указанному имени. Используйте со state present для построения, загрузки или получения образа, когда образ уже существует. Также используйте со state present для принудительного добавления тега к образу.
Пожалуйста, прекратите использовать этот параметр и используйте более специализированные параметры force_source, force_absent и force_tag.
Этот параметр будет удалён в Ansible 2.12.
force_absent
логическое значение
добавлен в 2.8
    Варианты:
  • no ←
  • yes
Используйте со state absent для снятия тега и удаления всех образов, соответствующих указанному имени.
force_source
логическое значение
добавлен в 2.8
    Варианты:
  • no ←
  • yes
Используйте со state present для построения, загрузки или получения образа (в зависимости от значения параметра source), когда образ уже существует.
force_tag
логическое значение
добавлен в 2.8
    Варианты:
  • no ←
  • yes
Используйте со state present для принудительного добавления тега к образу.
http_timeout
целое число
Таймаут для HTTP-запросов во время построения образа. Укажите положительное целое значение в секундах.
Пожалуйста, используйте build.http_timeout вместо этого. Этот параметр будет удалён в Ansible 2.12.
load_path
путь
Используйте со state present для загрузки образа из файла .tar.
Установите source на load, если хотите загрузить образ. Параметр будет автоматически установлен до Ansible 2.12, если этот параметр используется (кроме случаев, когда path также указан, в этом случае построение будет иметь приоритет). Начиная с Ansible 2.12, необходимо установить source на load.
name
строка / обязательный
Имя образа. Формат имени может быть одним из следующих: имя, репозиторий/имя, сервер_реестра:порт/имя. При отправке или получении образа имя может необязательно включать тег, добавляя ":имя_тега".
Обратите внимание, что идентификаторы образов (хеши) не поддерживаются.
nocache
логическое значение
    Варианты:
  • no ←
  • yes
Не использовать кэш при построении образа.
Пожалуйста, используйте build.nocache вместо этого. Этот параметр будет удалён в Ansible 2.12.
path
путь
Используйте со state 'present' для построения образа. Будет указан путь к каталогу, содержащему контекст и Dockerfile для построения образа.
Установите source на build, если хотите построить образ. Параметр будет автоматически установлен до Ansible 2.12, если этот параметр используется. Начиная с Ansible 2.12, необходимо установить source на build.
Пожалуйста, используйте build.path вместо этого. Этот параметр будет удалён в Ansible 2.12.

псевдонимы: build_path
pull
логическое значение
    Варианты:
  • no
  • yes
При построении образа скачиваются любые обновления FROM-образа в Dockerfile.
Пожалуйста, используйте build.pull вместо этого. Этот параметр будет удалён в Ansible 2.12.
По умолчанию в настоящее время yes. Это изменится на no в Ansible 2.12.
push
логическое значение
    Варианты:
  • no ←
  • yes
Отправить образ в реестр. Укажите реестр в параметре name или repository.
repository
строка
Полный путь к репозиторию. Используйте со state present для добавления тега к образу в репозиторий. Ожидается формат репозиторий:тег. Если тег не указан, будет использоваться значение параметра tag или latest.
rm
логическое значение
    Варианты:
  • no
  • yes ←
Удалить промежуточные контейнеры после построения.
Пожалуйста, используйте build.rm вместо этого. Этот параметр будет удалён в Ansible 2.12.
source
строка
добавлен в 2.8
    Варианты:
  • build
  • load
  • pull
  • local
Определяет, откуда модуль будет пытаться получить образ.
Используйте build для построения образа из Dockerfile. build.path должен быть указан, когда используется это значение.
Используйте load для загрузки образа из файла .tar. load_path должен быть указан, когда используется это значение.
Используйте pull для получения образа из реестра.
Используйте local для того, чтобы убедиться, что образ уже доступен в локальном демоне Docker, то есть не пытаться построить, получить или загрузить образ.
Перед Ansible 2.12 значение этого параметра будет автоматически определяться для обратной совместимости, но будет выведено предупреждение, если оно не указано явно. Начиная с Ansible 2.12, автоматическое определение будет отключено, и этот параметр будет обязательным.
ssl_version
строка
Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задании, используется значение переменной окружения DOCKER_SSL_VERSION.
state
строка
    Варианты:
  • absent
  • present ←
  • build
Осуществляйте утверждения о состоянии образа.
При значении absent образ будет удалён. Используйте параметр force для снятия тега и удаления всех образов, соответствующих указанному имени.
При значении present проверьте, существует ли образ с использованием предоставленного имени и тега. Если образ не найден или используется параметр force, образ будет либо получен, либо построен, либо загружен в зависимости от параметра source.
По умолчанию образ будет получен из Docker Hub или из реестра, указанного в имени образа. Обратите внимание, что это изменится в Ansible 2.12, поэтому, чтобы убедиться, что вы получаете, установите source на pull. Чтобы построить образ, укажите значение path, установленное на каталог, содержащий контекст и Dockerfile, и установите source на build. Чтобы загрузить образ, укажите load_path для указания пути к файлу архива. Чтобы добавить тег к образу в репозиторий, укажите путь repository. Если имя содержит путь к репозиторию, оно будет отправлено.
*Примечание:* state=build устарел и будет удалён в Ansible 2.11. Указание build будет работать так же, как present.
tag
строка
Значение по умолчанию:
"latest"
Используется для выбора образа при получении. Будет добавлен к образу при отправке, добавлении тега или построении. По умолчанию latest.
Если формат параметра name — имя:тег, то значение тега из name будет иметь приоритет.
timeout
целое число
Значение по умолчанию:
60
Максимальное время ожидания ответа от API в секундах.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не задана, будет использовано значение по умолчанию.
tls
логическое значение
    Варианты:
  • нет ←
  • да
Защитить соединение с API, используя TLS без проверки подлинности сервера Docker.
Обратите внимание, что если validate_certs также установлено в yes, то будет использоваться это значение.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS. Если переменная окружения не задана, будет использовано значение по умолчанию.
tls_hostname
строка
Значение по умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не задана, будет использовано значение по умолчанию.
use_tls
строка
    Варианты:
  • нет
  • шифрование
  • проверка
УСТЕРЕЖЕННО. Использовать tls для подключения к демону docker. Установите значение encrypt, чтобы использовать TLS. И установите значение verify, чтобы использовать TLS и проверить, что сертификат сервера действителен для сервера.
*Примечание:* Если вы указываете этот параметр, он установит значение параметров tls или validate_certs, если они не установлены в no.
Будет удалено в Ansible 2.11.
validate_certs
логическое значение
    Варианты:
  • нет ←
  • да
Защитить соединение с API, используя TLS и проверку подлинности сервера Docker.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_VERIFY. Если переменная окружения не задана, будет использовано значение по умолчанию.

псевдонимы: tls_verify

Примечания

Примечание

  • Подключитесь к демону 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 с TLS, возможно, потребуется установить дополнительные пакеты Python. Для Docker SDK for Python версии 2.4 или новее это можно сделать, установив docker[tls] с помощью pip.
  • Обратите внимание, что Docker SDK for Python позволяет указать только путь к конфигурации Docker для очень немногих функций. В общем случае он будет использовать $HOME/.docker/config.json, если переменная окружения DOCKER_CONFIG не указана, и использовать $DOCKER_CONFIG/config.json в противном случае.

Примеры

- name: pull an image
  docker_image:
    name: pacur/centos-7
    source: pull

- name: Tag and push to docker hub
  docker_image:
    name: pacur/centos-7:56
    repository: dcoppenhagan/myimage:7.56
    push: yes
    source: local

- name: Tag and push to local registry
  docker_image:
    # Image will be centos:7
    name: centos
    # Will be pushed to localhost:5000/centos:7
    repository: localhost:5000/centos
    tag: 7
    push: yes
    source: local

- name: Add tag latest to image
  docker_image:
    name: myimage:7.1.2
    repository: myimage:latest
    # As 'latest' usually already is present, we need to enable overwriting of existing tags:
    force_tag: yes
    source: local

- name: Remove image
  docker_image:
    state: absent
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1

- name: Build an image and push it to a private repo
  docker_image:
    build:
      path: ./sinatra
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1
    push: yes
    source: build

- name: Archive image
  docker_image:
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1
    archive_path: my_sinatra.tar
    source: local

- name: Load image from archive and push to a private registry
  docker_image:
    name: localhost:5000/myimages/sinatra
    tag: v1
    push: yes
    load_path: my_sinatra.tar
    source: load

- name: Build image and with build args
  docker_image:
    name: myimage
    build:
      path: /path/to/build/dir
      args:
        log_volume: /var/log/myapp
        listen_port: 8080
    source: build

- name: Build image using cache source
  docker_image:
    name: myimage:latest
    build:
      path: /path/to/build/dir
      # Use as cache source for building myimage
      cache_from:
        - nginx:latest
        - alpine:3.8
    source: build

Значения возврата

Общие значения возврата описаны здесь, следующие — это поля, уникальные для данного модуля:

Ключ Возвращаемое значение Описание
image
словарь
успешно
Результаты проверки изображения для затронутого изображения.



Статус

  • Этот модуль не гарантирует обратную совместимость интерфейса. [предварительная версия]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Павел Антонов (@softzilla)
  • Крис Хаусенект (@chouseknecht)
  • Сорин Сбарнеа (@ssbarnea)

Подсказка

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

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

Spec-Zone.ru

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