Docker-machine 连接到现有的 AWS 机器

标签 docker docker-machine docker-swarm

我使用 docker 提供的 cloudformation 模板在 AWS 上安装了 docker swarm 集群。 (最新版本)

如何使用 docker machine 连接到其中一个集群管理器?

我已经尝试使用带有所有可能参数的 docker machine AWS 驱动程序,但我无法连接。

还尝试使用 docker machine general driver ,它返回“os not supported”。

任何帮助将不胜感激 ,

尝试连接的步骤:

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 key ... 等待机器运行,这可能需要几分钟... 正在检测创建实例的操作系统... 等待SSH 可用...

最佳答案

它实际上非常简单。步骤:-

  • 从您现有的 docker 机器复制您要连接的远程主机的私钥,即
  • [ec2-user@ip-xx ~]$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS somehost - amazonec2 Running tcp://xx.xx.xx.xx:2376 v17.07.0-ce 然后得到我做的关键路径: -
    [ec2-user@ip-xx.xx.xx.xx ~]$ docker-machine inspect somehost { "ConfigVersion": 3, "Driver": { "IPAddress": "xx.xx.xx.xx", "MachineName": "somehost", "SSHUser": "ubuntu", "SSHPort": 22, "SSHKeyPath": "/home/ec2-user/.docker/machine/machines/somehost/id_rsa", "StorePath": "/home/ec2-user/.docker/machine", "SwarmMaster": false,
    私钥路径在 SSHKeyPath 中。在我的示例中,将私钥复制到您要连接的另一台机器上,使用带有 docker-machine 的 ec2-instance 将主机启动到另一个 ec2-instance,所以如果我想复制 key ,我只需使用 scp即我会像这样复制它:
    jimmy@jimmy-Lenovo-G570:~/$ scp -r -i docker-machine-instance.pem ec2-user@xx.xx.xx.xx.us-east-2.compute.amazonaws.com:/home/ec2-user/.docker/machine/machines/somehost/id_rsa /home/docker-machine-aws
  • 现在在我的笔记本电脑上,我可以使用通用驱动程序连接到该主机,例如:-
  • docker-machine create --driver generic \ --generic-ip-address xx.xx.xx.xx \ --generic-ssh-user ubuntu \ --generic-ssh-key /home/docker-machine-aws/id_rsa \ somehost-2
    像魅力一样工作!

    关于Docker-machine 连接到现有的 AWS 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45658541/

    相关文章:

    docker - 登录gitlab ci中的gitlab容器注册表时出错

    Dockerfile Alpine Image APK无法找到Java 8

    docker - Gitlab docker Runner路径问题。 gitlab-ci.yml

    Docker 正在大量使用,但没有任何 Docker 容器

    docker - Docker Compose入门指南

    docker - 哪种方法更适合发现容器就绪情况?

    docker - 在重新启动 Swarm 之前,NodeJS 不会检测到 Docker Bind Mount 中的更改

    Docker-compose:将主机名设置为等于容器运行所在的主机名

    用于 elasticsearch 7.0.1 和 kibana 7.0.1 的 docker-compose.yml

    docker - 将主机上运行的进程检测到Docker容器中