使用docker-machine命令从一个开发人员工作站创建的docker机器是否可以从另一个工作站进行管理。我不是在寻找一个涉及docker swarm的解决方案,而只是寻找一个docker machine。
根据我的理解,当docker-machine在AWS EC2等远程环境中创建机器时,它会创建密钥和证书,然后用于与机器进行基于TLS的通信。因此,理论上如果我将这些密钥和证书复制到另一台开发人员机器上,我应该可以连接到该远程docker机器。
但是,我想知道这是否是实现我想要做的事情的预期方法。 IMO这将是Docker社区可能面临的大多数情况,因为多个团队成员需要共享和管理相同的远程docker机器。
非常感谢任何有关此事的指导。
答案 0 :(得分:24)
通过使用基于TLS的通信,docker正在使用双向SSL验证。换句话说,客户端不仅验证服务器,还反过来验证服务器。通过创建启用了TLS的docker机器,您将成为自己的证书颁发机构(CA),因此您负责管理SSL证书。 Docker机器在幕后执行此操作,但我相信您可以手动设置自签名CA并重命名Docker以使用您设置的证书和密钥。因此,不是为所有开发人员工作站共享单个证书和密钥,而是为CA私钥签名的每个开发人员颁发唯一的证书和私钥。每个人必须共享的唯一事情是CA证书,它是公开的。
这样做的好处是,一旦开发人员离开,您就可以撤销证书,虽然这对于自签名证书来说很难实现,并且它允许在您可以检查谁从日志中执行操作的问责制。
答案 1 :(得分:3)
有一个导入/导出泊坞机的外部工具:machine-share。
machine-export <machine-name>
>> exported to <machine-name>.zip
machine-import <machine-name>.zip
>> imported
顺便说一句,我相信Daniel的解决方案更优越,但需要对工具/工作流程进行大量投资。 1}}在95%的情况下应该足够了。