在不同的客户端设备上使用相同的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而不要求人们维护一个虚拟机或者在本地安装 – 所以到实际的答案:
另一个开发人员需要执行哪些步骤才能访问同一台计算机?
- 安装docker。
- 在环境中设置主机+证书。
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。