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. В противном случае рекомендуется установить модуль Pythondocker. Обратите внимание, что оба модуля не должны быть установлены одновременно. Также обратите внимание, что при установке и удалении одного из модулей, другой может перестать работать и потребует переустановки. - 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 для сборки образа из 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