Spec-Zone.ru › Ansible 2.8

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 хосте.
По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.
Если значение не указано в задаче, используется значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, используется значение по умолчанию.

псевдонимы: docker_api_version
archive_path
путь
добавлен в 2.1
Используйте со значением 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).
http_timeout
целое число
Таймаут для HTTP-запросов во время операции построения образа. Укажите положительное целое число для количества секунд.
network
строка
Сеть для использования для инструкций построения RUN.
nocache
логическое значение
    Варианты:
  • нет ←
  • да
Не использовать кэш при построении образа.
path
путь / обязательно
Используйте со значением 'present' для построения образа. Будет путь к каталогу, содержащему контекст и Dockerfile для построения образа.
pull
логическое значение
    Варианты:
  • нет
  • да
При построении образа загружает любые обновления FROM образа в Dockerfile.
По умолчанию в настоящее время yes. Это изменится на no в Ansible 2.12.
rm
логическое значение
    Варианты:
  • нет
  • да ←
Удалить промежуточные контейнеры после построения.
use_config_proxy
логическое значение
    Варианты:
  • нет
  • да
Если установлено значение yes и в конфигурации клиента docker указана конфигурация прокси (по умолчанию $HOME/.docker/config.json), соответствующие переменные окружения будут установлены в строящемся контейнере.
Требуется Docker SDK для Python >= 3.7.0.
buildargs
словарь
добавлен в 2.2
Укажите словарь аргументов для построения 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
словарь
добавлен в 2.1
Словарь ограничений, применяемых к каждому контейнеру, созданному в процессе построения.
Пожалуйста, используйте 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-сокету для подключения к Docker API. Для подключения к удаленному хосту укажите строку TCP-соединения. Например, tcp://192.0.2.23:2376. Если для шифрования соединения используется TLS, модуль автоматически заменит tcp в URL соединения на https.
Если значение не указано в задаче, используется значение переменной окружения DOCKER_HOST. Если переменная окружения не задана, используется значение по умолчанию.

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

псевдонимы: build_path
pull
логический тип
добавлено в 2.1
    Варианты:
  • no
  • yes
При создании изображения загружает любые обновления для изображения FROM в Dockerfile.
Пожалуйста, используйте build.pull вместо этого. Этот параметр будет удален в Ansible 2.12.
По умолчанию в настоящее время yes. Это изменится на no в Ansible 2.12.
push
логический тип
добавлено в 2.2
    Варианты:
  • no ←
  • yes
Отправить изображение в репозиторий. Укажите репозиторий в качестве части параметра name или repository.
repository
строка
добавлено в 2.1
Полный путь к репозиторию. Используйте со статусом present для тегирования изображения в репозиторий. Ожидается формат repository:tag. Если тег не указан, будет использовано значение параметра tag или latest.
rm
логический тип
добавлено в 2.1
    Варианты:
  • 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:tag, то значение тега из name будет иметь приоритет.
timeout
целое число
По умолчанию:
60
Максимальное время ожидания ответа от API в секундах.
Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TIMEOUT.
Если переменная среды не задана, используется значение по умолчанию.
tls
boolean
    Варианты:
  • нет ←
  • да
Обеспечьте подключение к API с помощью TLS без проверки подлинности сервера Docker. Обратите внимание, что если параметр validate_certs также установлен в yes, он будет иметь приоритет.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не задана, будет использовано значение по умолчанию.
tls_hostname
строка
Значение по умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, будет использовано значение по умолчанию.
use_tls
строка
добавлено в 2.0
    Варианты:
  • нет
  • шифровать
  • проверять
УСТАРЕЛО. Использовать tls для подключения к демону docker. Установите значение encrypt, чтобы использовать TLS. И установите значение verify, чтобы использовать TLS и проверить, что сертификат сервера действителен для данного сервера.
*Примечание:* Если вы укажете этот параметр, он установит значение параметров tls или validate_certs, если они не установлены в no.
Будет удалено в Ansible 2.11.
validate_certs
boolean
    Варианты:
  • нет ←
  • да
Обеспечьте подключение к 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://docker-py.readthedocs.io/en/stable/machine/.
  • При подключении к демону Docker с помощью TLS может потребоваться установка дополнительных пакетов Python. Для Docker SDK для Python версии 2.4 или новее это можно сделать, установив docker[tls] с помощью pip.
  • Обратите внимание, что Docker SDK для 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. [сообщество]

Авторы

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

Подсказка

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

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

Spec-Zone.ru

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