从多台开发机器管理远程docker机器

时间:2015-05-13 01:53:45

标签: docker docker-machine

使用docker-machine命令从一个开发人员工作站创建的docker机器是否可以从另一个工作站进行管理。我不是在寻找一个涉及docker swarm的解决方案,而只是寻找一个docker machine。

根据我的理解,当docker-machine在AWS EC2等远程环境中创建机器时,它会创建密钥和证书,然后用于与机器进行基于TLS的通信。因此,理论上如果我将这些密钥和证书复制到另一台开发人员机器上,我应该可以连接到该远程docker机器。

但是,我想知道这是否是实现我想要做的事情的预期方法。 IMO这将是Docker社区可能面临的大多数情况,因为多个团队成员需要共享和管理相同的远程docker机器。

非常感谢任何有关此事的指导。

2 个答案:

答案 0 :(得分:24)

通过使用基于TLS的通信,docker正在使用双向SSL验证。换句话说,客户端不仅验证服务器,还反过来验证服务器。通过创建启用了TLS的docker机器,您将成为自己的证书颁发机构(CA),因此您负责管理SSL证书。 Docker机器在幕后执行此操作,但我相信您可以手动设置自签名CA并重命名Docker以使用您设置的证书和密钥。因此,不是为所有开发人员工作站共享单个证书和密钥,而是为CA私钥签名的每个开发人员颁发唯一的证书和私钥。每个人必须共享的唯一事情是CA证书,它是公开的。

这样做的好处是,一旦开发人员离开,您就可以撤销证书,虽然这对于自签名证书来说很难实现,并且它允许在您可以检查谁从日志中执行操作的问责制。

Docker TLS setup.

Becoming your own CA tutorial and certificate revocation

答案 1 :(得分:3)

有一个导入/导出泊坞机的外部工具:machine-share

machine-export <machine-name>
>> exported to <machine-name>.zip
machine-import <machine-name>.zip
>> imported

顺便说一句,我相信Daniel的解决方案更优越,但需要对工具/工作流程进行大量投资。