如何在现有的 Digital Ocean Droplet 上远程部署 Docker 服务?

如何在现有的 Digital Ocean Droplet 上远程部署 Docker 服务?

我有一个docker-compose.yml文件,它定义了 3 个服务:MySQL db、ASP.NET Core api 应用程序和 Angular 应用程序。最后两个图像是在本地构建的,而不是从远程存储库中提取的。我应该如何从本地计算机登录到 Digital Ocean droplet 并在其上推送我的服务?

我试过

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

但它只会创建一个 droplet。我不想创建它,因为它已经创建好了。

将本地 bash 附加到 DO droplet 的控制台并运行的算法是什么docker-compose up?或者也许我误解了 Docker 的部署过程,那么它是什么样的?

答案1

使用通用的机器司机。来自文档

如果你想导入现有主机允许 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

相关内容