【问题标题】:docker-machine connect to existing machinedocker-machine 连接到现有机器
【发布时间】:2016-04-23 05:23:54
【问题描述】:

我有一个全部托管在 AWS 上的 docker swarm,基本上是按照 this tutorial 的方式创建的。

要部署我们的代码,我需要能够访问这个独立于我创建这些实例的计算机的群。我在 docker-machine amazonec2 驱动程序的文档中没有看到可以使用我的 AWS 凭证连接到这些现有实例的任何地方。

我遇到的一些教程使用--url 参数通过docker-machine url 指定连接到现有实例,但我在最新的docker-machine 版本中没有看到该参数。

其他教程提到了 TLS 配置并将其与 docker-machine 结合使用以连接到现有实例,但鉴于唯一/秘密的 AWS 凭证,这似乎是多余的,并增加了一层我希望可以避免的复杂性。

推荐的方法是什么?

无法连接:

puttygen my-key.pem -L > id_rsa

docker-machine create --driver generic --generic-ip-address=ec2-....compute.amazonaws.com --generic-ssh-key id_rsa Swarm-Dev01

正在运行预创建检查... 创建机器... (Swarm-Dev01) 正在导入 SSH 密钥... 等待机器运行,这可能需要几分钟... 正在检测已创建实例的操作系统... 等待 SSH 可用...

【问题讨论】:

  • 也许您正在引用docker machine generic driver 使用通用驱动程序,您可以配置现有的远程 docker 安装并使用 TLS 进行设置。
  • @kand 你最终弄明白了吗?我一直在尝试自己,但仍无法确定正确的 SSH 设置
  • 我放弃了这个,从那以后就没有工作了:/

标签: amazon-web-services docker docker-machine


【解决方案1】:

要访问现有实例,您可以使用docker-machine create --driver generic 命令。该命令将 ssh 到机器上,确保安装了 docker,然后下载它存储的证书以供将来访问,例如使用 docker-compose。

命令:

docker-machine create \
    --driver generic \
    --generic-ip-address=<your_ip> \
    --generic-ssh-key ~/.ssh/id_rsa \
    vm

文档: https://docs.docker.com/machine/drivers/generic/

【讨论】:

  • 请记住,当您使用此命令时:“docker daemon 将重新启动,因此所有正在运行的容器都将停止。”
  • 无法连接亚马逊密钥 (pem)
  • 您还需要确保您的 SSH 密钥不受密码保护,并且您需要提供 --generic-ssh-user 您的用户名,除非您能够以 root 身份进行 SSH
  • --generic-ssh-user ubuntu
猜你喜欢
  • 2018-01-21
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 2018-02-14
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
相关资源
最近更新 更多