我们想要建立一个Docker开发节点,我们团队中的任何人都可以将其部署到。
我使用SSH创建了一个新的Docker机器,如下所示:
docker-machine create \
--driver generic \
--generic-ip-address=xxx.xxx.xxx.xxx \
--generic-ssh-user=myuser \
mymachine
使用docker-machine env mymachine
,我设置了我的环境。但是,另一个开发人员需要执行哪些步骤才能访问同一台计算机?
不幸的是,没有像docker-machine add ...
(https://github.com/docker/machine/issues/3212)
最简单,最现代的Docker实现方法是什么?
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"
但是这些证书怎么样?复制相同的证书或为他生成新的证书?
答案 0 :(得分:1)
根据我的经验,开发docker工作流程在本地运行时更加愉快。您可以挂载文件系统以进行快速迭代。在构建图像时,复制上下文的时间大大减少。另外,在安装docker命令行时,您的团队也可以安装docker引擎。
但是我知道你可能想要在不要求人们维护虚拟机或在本地安装的情况下证明停靠者 - 所以根据实际答案:
其他开发人员需要执行哪些步骤才能访问同一台计算机?
来自docker-machine env
的环境变量(以及那里引用的文件)就足够了。虽然这仍然存在复制证书的问题 - 正如您在github link中所讨论的那样。
复制相同的证书或生成新的证书?
(基于tls configuration)我相信一个docker守护进程只能支持一组证书。
实现[共享机器]的最简单和当前的Docker'方法是什么?
证书是为了您的安全,但可以禁用它。如果您对本地网络安全性有信心,并使用该服务进行开发 - 您可以让主机公开一个http端口。
这可以在创建时通过docker-machine完成:(来自这个问题的例子:boot2docker without tls verification)
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环境变量将节省一些输入。