Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в состав коллекции community.docker (версия 1.1.0).

Для установки используйте: ansible-galaxy collection install community.docker.

Для использования в playbook укажите: community.docker.docker_image.

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

Описание

  • Сборка, загрузка или скачивание образа, делая его доступным для создания контейнеров. Также поддерживает маркирование образа в репозитории и архивирование образа в файл .tar.

Требования

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

  • 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
словарь
Указывает параметры, используемые для сборки образов.
args
словарь
Предоставляет словарь аргументов для сборки key:value, которые сопоставляются с директивой Dockerfile ARG.
Docker ожидает, что значение будет строкой. Для удобства любые значения, отличные от строки, будут преобразованы в строки.
Требуется Docker API >= 1.21.
cache_from
список / элементы=строка
Список имен образов, которые следует рассматривать в качестве источника кэша.
container_limits
словарь
Словарь ограничений, применяемых к каждому контейнеру, созданному процессом сборки.
cpusetcpus
строка
Процессоры, в которых разрешена работа, например, "0-3", "0,1".
cpushares
целое число
Удельные доли ЦП (относительный вес).
memory
целое число
Установить ограничение памяти для сборки.
memswap
целое число
Общий объем памяти (память + своп), -1 для отключения свопа.
dockerfile
строка
Используется со статусом present и источником build для предоставления альтернативного имени Dockerfile для использования при сборке образа.
Это также может включать относительный путь (относительно path).
etc_hosts
словарь
Дополнительные хосты для добавления в /etc/hosts при построении контейнеров, как отображение имени хоста на IP-адрес.
http_timeout
целое число
Таймаут для HTTP-запросов во время операции сборки образа. Укажите положительное целое значение в секундах.
network
строка
Сеть для использования для RUN инструкций сборки.
nocache
булево
    Варианты:
  • нет ←
  • да
Не использовать кэш при сборке образа.
path
путь / обязательно
Используется со статусом 'present' для сборки образа. Будет путем к каталогу, содержащему контекст и Dockerfile для сборки образа.
platform
строка
добавлен в 1.1.0 community.docker
Платформа в формате os[/arch[/variant]].
pull
булево
    Варианты:
  • нет ←
  • да
При сборке образа загружает любые обновления FROM образа в Dockerfile.
rm
булево
    Варианты:
  • нет
  • да ←
Удалить промежуточные контейнеры после сборки.
target
строка
При сборке образа указывает промежуточную стадию сборки по имени как конечную стадию для результирующего образа.
use_config_proxy
булево
    Варианты:
  • нет
  • да
Если установлено значение yes и в конфигурации клиента docker указана конфигурация прокси (по умолчанию $HOME/.docker/config.json), соответствующие переменные окружения будут установлены в строящемся контейнере.
Требуется Docker SDK для Python >= 3.7.0.
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
debug
булево
    Варианты:
  • нет ←
  • да
Режим отладки
docker_host
строка
По умолчанию:
"unix://var/run/docker.sock"
URL или путь к Unix-сокету для подключения к Docker API. Для подключения к удаленному хосту укажите строку TCP-соединения. Например, tcp://192.0.2.23:2376. Если TLS используется для шифрования соединения, модуль автоматически заменит tcp в URL-адресе соединения на https.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_HOST. Если переменная окружения не задана, будет использовано значение по умолчанию.

Псевдонимы: docker_url
force_absent
булево
    Варианты:
  • нет ←
  • да
Используется со статусом отсутствует для снятия тега и удаления всех образов, соответствующих указанному имени.
force_source
булево
    Варианты:
  • нет ←
  • да
Используется со статусом present для сборки, загрузки или скачивания образа (в зависимости от значения параметра source), когда образ уже существует.
force_tag
булево
    Варианты:
  • нет ←
  • да
Используется со статусом present для принудительной привязки тега к образу.
load_path
путь
Используется со статусом present для загрузки образа из файла .tar.
Установите source на load, если хотите загрузить образ.
name
строка / обязательно
Имя образа. Формат имени: имя, хранилище/имя, сервер_регистра:порт/имя. При отправке или загрузке образа имя может необязательно включать тег, добавив ':имя_тега'.
Обратите внимание, что идентификаторы образов (хеши) не поддерживаются.
push
булево
    Варианты:
  • нет ←
  • да
Отправить образ в реестр. Укажите реестр в качестве части параметра name или repository.
repository
строка
Полный путь к хранилищу. Используется со статусом present для привязки тега образа к хранилищу. Ожидается формат хранилище:тег. Если тег не указан, будет использовано значение параметра tag или latest.
source
строка
    Варианты:
  • build
  • load
  • pull
  • local
Определяет, откуда модуль попытается получить образ.
Используйте build для сборки образа из Dockerfile. build.path должен быть указан, когда используется это значение.
Используйте load для загрузки образа из .tar файла. load_path должен быть указан, когда используется это значение.
Используйте pull для скачивания образа из реестра.
Используйте local для того, чтобы убедиться, что образ уже доступен на локальном демоне docker, т. е. не пытаться собрать, скачать или загрузить образ.
ssl_version
строка
Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_SSL_VERSION вместо него.
состояние
строка
    Варианты:
  • отсутствует
  • есть ←
Сделайте утверждения о состоянии изображения.
Когда absent изображение будет удалено. Используйте опцию force, чтобы разбить и удалить все изображения, соответствующие указанному имени.
Когда present проверьте, существует ли изображение с использованием указанного имени и метки. Если изображение не найдено или используется опция force, изображение будет либо извлечено, построено или загружено, в зависимости от опции source.
метка
строка
По умолчанию:
"последняя"
Используется для выбора изображения при извлечении. Будет добавлен к изображению при добавлении, маркировке или построении. По умолчанию последняя.
Если формат параметра name — name:tag, то значение тега из name будет иметь приоритет.
таймаут
целое число
По умолчанию:
60
Максимальное время в секундах ожидания ответа от API.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TIMEOUT. Если переменная среды не задана, будет использовано значение по умолчанию.
tls
логическое
    Варианты:
  • нет ←
  • да
Обеспечение безопасности подключения к API с помощью TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, он будет иметь приоритет.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не задана, будет использовано значение по умолчанию.
tls_hostname
строка
По умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, будет использовано значение по умолчанию.
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 для Python версии 2.4 или более поздней это можно сделать, установив docker[tls] с помощью ansible.builtin.pip.
  • Обратите внимание, что Docker SDK для Python позволяет указывать путь к конфигурации Docker только для очень немногих функций. В целом, он будет использовать $HOME/.docker/config.json, если переменная среды DOCKER_CONFIG не указана, и использовать $DOCKER_CONFIG/config.json в противном случае.
  • Этот модуль использует Docker SDK для Python для связи с демоном Docker.

Примеры

- name: Pull an image
  community.docker.docker_image:
    name: pacur/centos-7
    source: pull

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

- name: Tag and push to local registry
  community.docker.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
  community.docker.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
  community.docker.docker_image:
    state: absent
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1

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

- name: Archive image
  community.docker.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
  community.docker.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
  community.docker.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
  community.docker.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

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

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

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

stdout
строка
добавлено в 1.0.0 community.docker
успешно
Вывод Docker при построении изображения.



Авторы

  • Павел Антонов (@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.10/collections/community/docker/docker_image_module.html

Spec-Zone.ru

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