Назад | Перейти на главную страницу

Как удаленно развернуть сервисы Docker на существующей капле Digital Ocean?

я получил docker-compose.yml файл, который определяет 3 службы: MySQL db, приложение ASP.NET Core api и приложение Angular. Последние два образа создаются локально, а не извлекаются из удаленного репозитория. Как я должен войти с моей локальной машины в дроплет Digital Ocean и продвигать на нем свои сервисы?

Я попытался

docker-machine create --driver digitalocean --digitalocean-access-token=myToken --digitalocean-ssh-key-path myPath  --digitalocean-ssh-user "root" dropletName

Но это лишь капелька. Я не хочу его создавать, потому что он уже создан.

Какой алгоритм прикрепить мой локальный bash к консоли капли DO и запустить docker-compose up? Или, может быть, я неправильно понимаю процедуру развертывания с помощью Docker, как она тогда выглядит?

Использовать общий водитель машины. Из документы:

если вы хотите импортировать существующий хост чтобы позволить Docker Machine управлять

Используйте команду:

docker-machine create --driver generic --generic-ip-address 111.111.111.111 --generic-ssh-key c:/ssh/digital-ocean droplet_name

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

Возможная проблема

В моем случае я использовал Git Bash для подключения к удаленному хосту с помощью приведенной выше команды. Вроде не работает потому что зависает на линии

Ожидание доступности SSH ...

а затем (в лучшем случае) завершается:

Ошибка при создании компьютера: ошибка при обнаружении ОС: слишком много попыток, ожидающих доступности SSH. Последняя ошибка: превышено максимальное количество попыток (60)

«Решение» этого не было очевидным. Я открыл другое окно bash и проверил, создана ли машина.

docker-machine ls

Так оно и было. Теперь я смог активировать его в моем клиенте Docker с помощью

docker-machine env machineName