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