在不同的客户端设备上使用相同的Docker机器

我们想要设置一个Docker开发节点,我们团队中的任何人都可以部署这些节点。

我使用SSH创build了一个新的Docker机器,如下所示:

docker-machine create \ --driver generic \ --generic-ip-address=xxx.xxx.xxx.xxx \ --generic-ssh-user=myuser \ mymachine 

使用docker-machine env mymachine ,我build立了我的环境。 但是另一个开发人员需要执行哪些步骤才能访问同一台计算机?

不幸的是,没有什么像docker-machine add ... ( https://github.com/docker/machine/issues/3212 )

什么是最容易和现在的Docker'ic实现它的方式?

 export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://xxx.xxx.xxx.xxx:2376" export DOCKER_CERT_PATH="/Users/user/.docker/machine/machines/mymachine" export DOCKER_MACHINE_NAME="mymachine" 

那么证书呢? 复制相同的证书或为他生成新的?

根据我的经验,开发docker工作stream程在本地运行时会更加愉快。 您可以装载您的文件系统以进行快速迭代。 而当build立图像时,复制上下文的时间大大减less。 另外,在安装docker命令行时,您的团队也可以安装docker引擎。

但是我明白,你可能想要certificatedocker而不要求人们维护一个虚拟机或者在本地安装 – 所以到实际的答案:

另一个开发人员需要执行哪些步骤才能访问同一台计算机?

  1. 安装docker。
  2. 在环境中设置主机+证书。

docker-machine env的环境variables(以及那里引用的文件)就足够了。 尽pipe如此,仍然存在复制证书的问题 – 正如您在github链接中所讨论的那样。

复制相同的证书或生成新的?

(基于tlsconfiguration )我相信docker守护进程只能支持一组证书。

什么是实现[共享机器]最简单和现在的Docker'ic方式?

该证书是为了您的安全,但可以禁用。 如果您对本地networking安全性有信心,并使用该服务进行开发,则可以让主机公开一个http端口。

这可以在创build时通过docker-machine完成:(例如,从这个问题: boot2docker没有tlsvalidation )

docker-machine create -d virtualbox --engine-env DOCKER_TLS=no --engine-opt host=tcp://0.0.0.0:2375 node1

一旦服务暴露在禁用TLS的tcp端口上,任何人都可以使用-H标志从docker命令行访问它。

docker -H xxx.xxx.xxx.xxx:2375 images

设置DOCKER_HOST环境variables将保存一些input。