Модуль community.docker.docker_container_copy_into — копирование файла в контейнер Docker
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.docker.docker_container_copy_into.
Добавлено в community.docker 3.4.0
Краткое описание
- Копирование файла в контейнер Docker.
- Аналогично
docker cp. - Чтобы скопировать файлы в неработающий контейнер, необходимо указать параметры
owner_idиgroup_id. Это также необходимо, если в контейнере отсутствует оболочка/bin/shс утилитойid.
Примечание
Для этого модуля имеется соответствующий плагин действия.
Требования
На узле, который выполняет этот модуль, необходимы следующие компоненты.
- Docker API >= 1.25
- paramiko (при использовании SSH с
use_ssh_client=false) - pyOpenSSL (при использовании TLS)
- pywin32 (при использовании именованных каналов в Windows 32)
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия Docker API, работающего на узле Docker. По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и демоном Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной среды По умолчанию: |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Чтобы проверить сервер, укажите путь к файлу сертификата CA. Если значение не указано в задаче, а переменная среды Ранее этот параметр назывался |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу сертификата TLS клиента. Если значение не указано в задаче, а переменная среды |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу ключа TLS клиента. Если значение не указано в задаче, а переменная среды |
container строка / обязательный | Имя контейнера, в который нужно скопировать файлы. |
container_path строка / обязательный | Путь к файлу внутри контейнера Docker. Должен быть абсолютным путем. |
content строка | Содержимое файла. Если требуется передать двоичные данные, предварительно закодируйте их в Base64 и задайте Взаимоисключающий параметр с |
content_is_b64 логический | Если установлено значение Для работы с двоичными данными Варианты:
|
debug логический | Режим отладки Варианты:
|
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix, используемый для подключения к Docker API. Для подключения к удаленному узлу укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него будет использовано значение переменной среды По умолчанию: |
follow логический | Этот флаг указывает, следует ли переходить по ссылкам файловой системы в контейнере Docker, если они существуют. Варианты:
|
force логический | Если установлено значение Если установлено значение Если этот параметр не указан, модуль будет идемпотентным. Для проверки идемпотентности модуль попытается получить сведения об объекте файловой системы в контейнере. Если все параметры совпадают, он загрузит файл из контейнера и сравнит его с файлом для загрузки. Варианты:
|
group_id целое число | ID группы, который следует использовать при записи файла на диск. Если этот параметр указан, необходимо также указать Если параметр не указан, модуль попытается определить идентификаторы пользователя и группы текущего пользователя в контейнере. Это сработает только в том случае, если в контейнере присутствует |
local_follow логический | Этот флаг указывает, следует ли переходить по ссылкам файловой системы в исходном дереве (на узле, где выполняется модуль), если они существуют. Варианты:
|
mode любой | Режим доступа к файлу, используемый при записи файла на диск. Если этот параметр не указан, будет использоваться режим файла в исходной системе. Способ разбора этого параметра зависит от значения |
mode_parse строка добавлено в community.docker 4.6.0 | Определяет способ разбора параметра Варианты:
|
owner_id целое число | ID владельца, который следует использовать при записи файла на диск. Если этот параметр указан, необходимо также указать Если параметр не указан, модуль попытается определить идентификаторы пользователя и группы текущего пользователя в контейнере. Это сработает только в том случае, если в контейнере присутствует |
path путь | |
timeout целое число | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, вместо него будет использовано значение переменной среды По умолчанию: |
tls логический | Защитить подключение к API с помощью TLS без проверки подлинности сервера узла Docker. Обратите внимание: если Если значение не указано в задаче, вместо него будет использовано значение переменной среды Варианты:
|
tls_hostname строка | При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использовано значение переменной среды Обратите внимание: в предыдущих версиях значением этого параметра по умолчанию было |
use_ssh_client логический добавлено в community.docker 1.5.0 | Для транспорта SSH использовать инструмент командной строки Варианты:
|
validate_certs псевдонимы: tls_verify логический | Защитить подключение к API с помощью TLS и проверить подлинность сервера узла Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной среды Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная Для вычисления различий потребуется передать дополнительные данные. Модуль использует настройку ansible-core MAX_FILE_SIZE_FOR_DIFF, чтобы определить максимальный размер файлов, для которых вычисляются различия. | В режиме сравнения возвращает сведения об изменениях (или о возможных изменениях в |
idempotent | Поддержка: частичная Если | При повторном запуске подряд вне режима проверки с теми же аргументами второй запуск сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом. |
Примечания
Примечание
- Подключайтесь к демону Docker, передавая параметры в каждой задаче или задавая переменные среды. Можно задать переменные
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,DOCKER_TLS,DOCKER_TLS_VERIFYиDOCKER_TIMEOUT. Если вы используете docker machine, запустите поставляемый с продуктом скрипт настройки среды. Он задаст эти переменные за вас. Подробнее см. на странице https://docs.docker.com/machine/reference/env/. - Этот модуль не использует Docker SDK для Python для взаимодействия с демоном Docker. Он использует код, производный от Docker SDK или Python и включенный в эту коллекцию.
Примеры
---
- name: Copy a file into the container
community.docker.docker_container_copy_into:
container: mydata
path: /home/user/data.txt
container_path: /data/input.txt
- name: Copy a file into the container with owner, group, and mode set
community.docker.docker_container_copy_into:
container: mydata
path: /home/user/bin/runme.o
container_path: /bin/runme
owner_id: 0 # root
group_id: 0 # root
mode: "0755" # readable and executable by all users, writable by root
mode_parse: modern # ensure that strings passed for 'mode' are passed as octal numbers
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
container_path строка | Фактический путь в контейнере. Может отличаться от Возвращается: при успехе |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_container_copy_into_module.html