Spec-Zone.ru › Ansible 2.11

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

Примечание

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

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

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

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

Обзор

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

Требования

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

  • API Docker >= 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.
По умолчанию используется последняя версия 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
целое число
CPU доли (относительный вес).
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 сообщества 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.
тег
строка
По умолчанию:
"latest"
Используется для выбора изображения при извлечении. Будет добавлен к изображению при помещении, маркировке или построении. По умолчанию latest.
Если формат параметра name name:tag, то значение тега из name будет иметь приоритет.
timeout
целое число
По умолчанию:
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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/docker/docker_image_module.html

Spec-Zone.ru

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