я получил 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