Ендпойнти контейнера Докер | Mutagen підтримує синхронізацію файлів і пересилання мережевого трафіку до та з контейнерів Docker® .


Кінцеві точки контейнера Docker®

mutagen.io
хв

Mutagen підтримує синхронізацію файлів і пересилання мережевого трафіку до та з контейнерів Docker® . Ця підтримка поширюється на всі клієнтські платформи Docker (Linux® , macOS, Windows тощо), налаштування демона Docker (локальний, віддалений, віртуальна машина, Hyper-V тощо) і типи контейнерів Docker (підтримуються контейнери як Linux, так і Windows). ).

ПРИМІТКА. Передача Docker у Mutagen є окремою від інтеграції Mutagen у Docker для Mac . Інтеграція Mutagen у Docker для Mac зосереджена на кешуванні файлів усередині віртуальної машини Docker для Mac, тоді як транспорт контейнера Mutagen Docker, описаний нижче, зосереджений на більш загальній синхронізації файлів і пересиланні по мережі за допомогою контейнерів Docker.

Вимоги

Mutagen вимагає, dockerщоб команда була на шляху користувача. Через використання прапора -w/--workdirз docker execкомандою для Mutagen потрібен клієнт Docker і демон, що підтримує API 1.35+. Ви можете перевірити підтримку версії API вашого клієнта Docker і демона за допомогою docker versionкоманди.

Синхронізація

Кінцеві точки файлової системи контейнера Docker можна вказати для mutagen sync createкоманди за допомогою URL-адрес такого вигляду:

docker://[<user>@]<container><path>

Ці URL-адреси підтримують імена та шляхи Unicode і не вимагають і не підтримують вихідне кодування URL-адрес (тобто просто введіть «ö», а не «%C3%B6» тощо).

Компонент <user>є необов’язковим і вказує Mutagen запускатися від імені вказаного користувача всередині контейнера. Якщо не вказано, Mutagen працює як користувач контейнера за замовчуванням (зазвичай rootдля контейнерів Linux або ContainerAdministratorконтейнерів Windows). У будь-якому випадку користувача слід вибирати таким чином, щоб дозволити доступ до цільового шляху та створити файли з правильними дозволами. Використання адміністратора (наприклад, root) для доступу та явного встановлення дозволів часто є найнадійнішою стратегією з контейнерами.

Компонент <container>може вказувати будь-який тип ідентифікатора контейнера, зрозумілого docker cpі docker exec(наприклад, ім'я контейнера або шістнадцятковий ідентифікатор).

Компонент <path>має бути непорожнім і починатися з /Він може приймати одну з чотирьох форм: абсолютний шлях, відносний шлях домашнього каталогу, відносний шлях домашнього каталогу для альтернативного користувача або абсолютний шлях Windows. У випадку шляху Windows /символ усе ще потрібен на початку шляху.

Контейнери Docker мають бути запущені, щоб створити сеанси синхронізації та запустити синхронізацію.

Пересилання

Кінцеві точки мережі контейнера Docker можна вказати в mutagen forward createкоманді за допомогою URL-адрес такого вигляду:

docker://[<user>@]<container>:<network-endpoint>

Компоненти цієї URL-адреси <user>та <container>є такими самими, що й у форматі URL-адреси синхронізації, описаному вище, тоді як компонент <network-endpoint>описано в документації пересилання . Як і у випадку синхронізації, <user>компонент (або його відсутність) слід вибирати для забезпечення необхідних можливостей у контейнері (наприклад, прив’язка до привілейованих портів). У разі відносних шляхів сокетів домену Unix у кінцевих точках мережі розв’язання шляху виконуватиметься відносно домашнього каталогу користувача контейнера (тобто користувача, указаного в URL-адресі, або користувача контейнера за замовчуванням, якщо в URL-адресі не вказано).

Контейнери Docker мають бути запущені, щоб створити сеанси пересилання та дозволити запустити пересилання.

Змінні середовища

Поведінка клієнта Docker контролюється декількома змінними середовища:

  • DOCKER_HOST
  • DOCKER_TLS_VERIFY
  • DOCKER_CERT_PATH
  • DOCKER_API_VERSION
  • DOCKER_CONTEXT(у Mutagen v0.12+)

Mutagen знає про ці змінні середовища та заблокує їх під час створення сеансу (що видно за допомогою команд mutagen sync createі mutagen forward create), включаючи блокування відсутніх або порожніх значень. Потім ці заблоковані значення будуть перенаправлені до будь-яких dockerкоманд, які виконує Mutagen.

За потреби можна використовувати специфічні для кінцевих точок версії цих змінних (з префіксом MUTAGEN_ALPHA_MUTAGEN_BETA_для сеансів синхронізації та MUTAGEN_SOURCE_MUTAGEN_DESTINATION_для сеансів пересилання) для заміни їхніх значень для кожної кінцевої точки. Це буде необхідно, наприклад, для створення сеансу синхронізації між двома контейнерами Docker, розміщеними на різних демонах Docker. У цьому випадку DOCKER_*не можна використовувати єдині глобальні значення для змінних середовища (оскільки це буде застосовано до URL-адрес обох кінцевих точок), а під час виклику потрібно буде використовувати специфічні для кінцевих точок змінні, такі як MUTAGEN_ALPHA_DOCKER_HOSTабо .MUTAGEN_BETA_DOCKER_TLS_VERIFYmutagen sync create

Реалізація

Підтримка Mutagen для контейнерів Docker забезпечується виконуваним файлом клієнта Docker у вашій системі. Mutagen використовує docker cpкоманду для копіювання двійкових файлів агента в контейнери та docker execкоманду для запуску та обміну даними з двійковими файлами агента через стандартні потоки введення/виведення.

Віконні контейнери

Контейнери Docker Windows запускаються за допомогою гіпервізора Microsoft Hyper-V, який, на жаль, не дозволяє docker cpкопіювати файли в запущені контейнери. Це означає, що Mutagen має зупинити та перезапустити контейнери Windows, щоб скопіювати виконувані файли свого агента. Mutagen підкаже користувачеві, якщо це необхідно, і дозволить користувачеві перервати або продовжити. Якщо користувач вирішить продовжити, Mutagen автоматично зупинить і перезапустить. Це необхідно, лише якщо сумісний двійковий файл агента ще не існує в контейнері, тому це не буде потрібно під час наступних операцій підключення.

Це обмеження не стосується контейнерів Linux.

Шлях пошуку Docker

Mutagen використовує перший dockerвиконуваний файл, знайдений на шляху користувача (і в macOS включає кілька інших добре відомих шляхів пошуку). Цю стратегію пошуку можна змінити, встановивши для MUTAGEN_DOCKER_PATHзмінної середовища (для демона Mutagen) шлях, що містить потрібний виконуваний файл клієнта Docker.

Вікна і шоколад

Якщо ви використовуєте Chocolatey для встановлення Docker CLI у Windows, майте на увазі, що Chocolatey генерує виконувані файли shim, які порушують стандартне потокове введення/виведення, яке використовує Mutagen. На щастя, ви можете вказати Mutagen на нерозкриті виконувані файли, щоб уникнути цієї поломки, встановивши MUTAGEN_DOCKER_PATHзмінну середовища. Цей параметр має виглядати так:

MUTAGEN_DOCKER_PATH=C:\ProgramData\chocolatey\lib\docker-cli\tools

Можливо, вам знадобиться налаштувати цей шлях залежно від інсталяції Chocolatey. Ви також можете використовувати %ChocolateyInstall%змінну середовища як частину цього визначення, наприклад:

MUTAGEN_DOCKER_PATH=%ChocolateyInstall%\lib\docker-cli\tools
Просмотры:

Коментарі

Популярні публікації