Skip to Content

Установка Orchestrator в закрытом контуре (без доступа к интернету)

В средах без доступа к интернету (закрытый контур) для развертывания Docker-образов требуется предварительная загрузка их на машине, имеющей доступ в сеть Интернет, с последующим физическим переносом на сервер.

ℹ️

Рекомендация: Используйте одинаковые версии Docker на обеих машинах, чтобы избежать возможных проблем с совместимостью формата образов.

Порядок действий

1. Подготовка на машине с доступом в интернет

  1. Авторизуйтесь в приватном реестре (если образы находятся в закрытом реестре, например nexus.primo-rpa.ru:8000):
docker login nexus.primo-rpa.ru:8000
  1. Скопируйте файл docker-compose.yml в рабочую директорию. Теперь рабочая директория (например, /home/user/orchestrator) содержит docker-compose.yml. Все дальнейшие команды мы выполняем из нее.

  2. Загрузите Docker-образы:

docker compose pull

2. Сохранение образов в архив

Убедитесь, что все образы на месте:

Вариант А — сохранить все образы в один файл (удобно для переноса):

docker save -o images.tar $(docker compose config --images)

Вариант Б — сохранить каждый образ в отдельный файл (удобно при обновлении отдельных образов):

mkdir images for img in $(docker compose config --images); do docker save -o images/$(echo $img | tr '/:' '_').tar $img done

Рекомендуется также сохранить информацию о версиях образов:

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}" > images-version-info.txt

3. Копирование на флеш-накопитель

Скопируйте созданные файлы на флеш-накопитель:

# Если образы в одном файле cp images.tar images-version-info.txt /media/usb/ # Если в папке images cp -r images images-version-info.txt /media/usb/ # Не забудьте также скопировать docker-compose.yml cp docker-compose.yml /media/usb/

4. Перенос на сервер в закрытом контуре

Подключите флеш-накопитель к серверу без доступа в интернет и скопируйте файлы:

# Создайте рабочую директорию mkdir -p /opt/orchestrator # Скопируйте файлы с флешки cp /media/usb/images.tar /opt/orchestrator/ cp /media/usb/docker-compose.yml /opt/orchestrator/ cp /media/usb/images-version-info.txt /opt/orchestrator/ # (или cp -r /media/usb/images /opt/orchestrator/)

5. Загрузка образов на сервере

Если использовался один файл:

cd /opt/orchestrator docker load -i images.tar

Если использовалось несколько файлов:

cd /opt/orchestrator/images for f in *.tar; do docker load -i "$f"; done

Проверьте, что все образы загружены:

sudo docker images # Сравните с содержимым images-version-info.txt

6. Запуск Orchestrator

cd /opt/orchestrator sudo docker compose up -d

Проверка статуса:

sudo docker compose ps # Все контейнеры должны быть в статусе "Up" или "healthy"

Устранение возможных проблем

  1. Ошибка: no such file or directory при docker load Решение: Проверьте, что файл существует и путь указан верно. Используйте ls -la для проверки.

  2. Ошибка: конфликт имен образов при загрузке Решение: Убедитесь, что имена образов в docker-compose.yml и в tar-файлах совпадают. При загрузке отдельных файлов убедитесь, что нет лишних символов в именах.

Для больших образов (более 1 ГБ) рекомендуется использовать отдельные файлы — это упрощает повторную загрузку при обновлении только части образов и позволяет избежать ошибок при повреждении большого архива.

Важно

  1. docker-compose up не умеет самостоятельно распаковывать tar — сперва выполните docker load
  2. Загруженные образы будут доступны Docker Compose только после завершения docker load
  3. Сверьте теги образов в docker-compose.yml с теми, что были сохранены в tar — расхождения приведут к ошибке Unable to find image