docker_image - Управление образами docker.
Новое в версии 1.5.
Обзор
- Создать, загрузить или скачать образ, сделав его доступным для создания контейнеров. Также поддерживает маркировку образа в репозитории и архивирование образа в файл .tar.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- docker-py >= 1.7.0
- Обратите внимание, что модуль Python docker-py был заменён на docker (подробнее см. здесь). Для Python 2.6 необходимо использовать
docker-py. В противном случае рекомендуется установить модуль Pythondocker. Обратите внимание, что оба модуля не должны быть установлены одновременно. Также обратите внимание, что при установке и последующем удалении одного из модулей другой может перестать работать, и потребуется его повторная установка. - Docker API >= 1.20
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| api_version | По умолчанию: "auto" | Версия Docker API, работающая на Docker Host. По умолчанию используется последняя версия API, поддерживаемая docker-py. Если значение не указано в задании, используется значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, используется значение по умолчанию.Псевдонимы: docker_api_version | |
| archive_path (добавлен в 2.1) | Используется со значением present для архивации образа в файл .tar. | ||
| buildargs (добавлен в 2.2) | Указывает словарь аргументов сборки key:value, которые соответствуют директивам Dockerfile ARG.Docker ожидает строковое значение. Для удобства все значения, отличные от строк, будут преобразованы в строки. Требуется Docker API >= 1.21 и docker-py >= 1.7.0. | ||
| cacert_path | Используйте сертификат CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задании, и переменная окружения DOCKER_CERT_PATH задана, используется файл ca.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH. Псевдонимы: tls_ca_cert | ||
| cert_path | Путь к файлу TLS-сертификата клиента. Если значение не указано в задании, и переменная окружения DOCKER_CERT_PATH задана, используется файл cert.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH. Псевдонимы: tls_client_cert | ||
| container_limits (добавлен в 2.1) | Словарь ограничений, применяемых к каждому контейнеру, созданному в процессе сборки. | ||
| memory | Установить лимит памяти для сборки. | ||
| memswap | Общий объем памяти (память + своп), -1 для отключения свопа. | ||
| cpushares | CPU-доли (относительный вес). | ||
| cpusetcpus | CPU, на которых разрешено выполнение, например, "0-3", "0,1". | ||
| debug bool |
| Режим отладки | |
| 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 для указания альтернативного имени Dockerfile при сборке образа. | ||
| force bool (добавлен в 2.1) |
| Используется со значением absent для удаления тега и всех образов, соответствующих указанному имени. Используется со значением present для сборки, загрузки или получения образа, когда образ уже существует. | |
| http_timeout (добавлен в 2.1) | Таймаут для HTTP-запросов во время операции сборки образа. Укажите положительное целое значение в секундах. | ||
| key_path | Путь к файлу TLS-ключа клиента. Если значение не указано в задании, и переменная окружения DOCKER_CERT_PATH задана, используется файл key.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH. Псевдонимы: tls_client_key | ||
| load_path (добавлен в 2.2) | Используется со значением present для загрузки образа из файла .tar. | ||
| name обязательно | Имя образа. Формат имени может быть одним из следующих: имя, имя_репозитория/имя, имя_регистра_сервера:порт/имя. При отправке или получении образа имя может необязательно включать тег, добавляя ":имя_тега". | ||
| nocache bool |
| Не использовать кэш при сборке образа. | |
| path | Используется со значением 'present' для сборки образа. Будет путём к каталогу, содержащему контекст и Dockerfile для сборки образа. Псевдонимы: build_path | ||
| pull bool (добавлен в 2.1) |
| При сборке образа скачивает все обновления для образа FROM в Dockerfile. | |
| push bool (добавлен в 2.2) |
| Отправить образ в реестр. Укажите реестр в качестве части параметра имя или репозиторий. | |
| repository (добавлен в 2.1) | Полный путь к репозиторию. Используется со значением present для добавления тега образа в репозиторий. Ожидается формат репозиторий:тег. Если тег не указан, используется значение параметра tag или latest. | ||
| rm bool (добавлен в 2.1) |
| Удалить промежуточные контейнеры после сборки. | |
| ssl_version | Укажите действительное значение номера версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задании, используется значение переменной окружения DOCKER_SSL_VERSION. | ||
| state |
| Делать утверждения о состоянии образа. При значении absent образ будет удален. Используйте параметр force для удаления тега и всех образов, соответствующих указанному имени.При значении present проверяется, существует ли образ с заданным именем и тегом. Если образ не найден или используется параметр force, образ будет либо загружен, собран, либо загружен. По умолчанию образ загружается с Docker Hub. Для сборки образа укажите значение path, установленное на каталог, содержащий контекст и Dockerfile. Для загрузки образа укажите load_path, чтобы указать путь к файлу архива. Чтобы добавить тег образа в репозиторий, укажите путь к репозиторию. Если имя содержит путь к репозиторию, оно будет отправлено.ПРИМЕЧАНИЕ: build УСТАРЕЛО и будет удалено в релизе 2.3. Указание build будет вести себя так же, как present. | |
| tag | По умолчанию: "latest" | Используется для выбора образа при получении. Будет добавлен к образу при отправке, добавлении тега или сборке. По умолчанию - latest. Если формат параметра name имеет вид имя:тег, то значение тега из name будет иметь приоритет. | |
| timeout | По умолчанию: 60 | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задании, используется значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не задана, используется значение по умолчанию. | |
| tls bool |
| Обеспечить безопасность соединения с API с использованием TLS без проверки подлинности Docker-хоста. Если значение не указано в задании, используется значение переменной окружения DOCKER_TLS. Если переменная окружения не задана, используется значение по умолчанию. | |
| tls_hostname | По умолчанию: "localhost" | При проверке подлинности Docker-хоста укажите ожидаемое имя сервера. Если значение не указано в задании, используется значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не задана, используется значение по умолчанию. | |
| tls_verify bool |
| Защитить подключение к API с помощью TLS и проверить подлинность сервера Docker. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_VERIFY. Если переменная среды не установлена, будет использовано значение по умолчанию. | |
| use_tls (added in 2.0) |
| УСТАРЕЛО. Использовать tls для подключения к серверу docker. Установите в no, если TLS не использовать. Установите в encrypt, чтобы использовать TLS. И установите в verify, чтобы использовать TLS и проверить, что сертификат сервера действителен для сервера. ПРИМЕЧАНИЕ: если вы укажете этот параметр, он установит значение параметров tls или 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.org/en/stable/machine/
Примеры
- name: pull an image
docker_image:
name: pacur/centos-7
- name: Tag and push to docker hub
docker_image:
name: pacur/centos-7
repository: dcoppenhagan/myimage
tag: 7.0
push: yes
- name: Tag and push to local registry
docker_image:
name: centos
repository: localhost:5000/centos
tag: 7
push: yes
- 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:
path: ./sinatra
name: registry.ansible.com/chouseknecht/sinatra
tag: v1
push: yes
- name: Archive image
docker_image:
name: registry.ansible.com/chouseknecht/sinatra
tag: v1
archive_path: my_sinatra.tar
- 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
- name: Build image and with buildargs
docker_image:
path: /path/to/build/dir
name: myimage
buildargs:
log_volume: /var/log/myapp
listen_port: 8080
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| image dict | success | Результаты проверки изображения для затронутого изображения. |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Поддержка модулей и поддержка.
Список других модулей, также поддерживаемых сообществом 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.6/modules/docker_image_module.html