Skip to content

keepwork docker how it works

DreamAndDead edited this page Aug 17, 2017 · 2 revisions

keepwork dockers: some tech details

一些在搭建过程中,分享的技术细节

1 docker in docker

在整个流程的建设理念中,有一个重要的就是,所有的服务都运行在容器里,每个窗口运行一个服务。

如果jenkins运行在docker中,jenkins job又需要操作容器,就变成了docker in docker的嵌套模式。这种方式是不被推荐的,因为docker在那样的模式下很容易出现问题。

请阅读这里!!!!

解决docker in docker的问题,就是将/var/lib/docker.sock映射到docker容器内。所有在容器内进行的docker操作,全部传输到宿主机的daemon来处理。感觉像是docker in docker,实际运行模式为docker beside docker。

2 jenkins master and slave

jenkins社区维护了jenkins相关的镜像

两者的启动都很简单,文档描述的很清楚,问题在于,两者之间如何连接

官方文档记录有两种方式

  • ssh连接,这种方式是master主动去连接slave
  • jnlp,master开放50000端口,让slave来发现,并进行连接通讯

ssh自己没有尝试成功,jnlp反而非常轻松。相比之下,jnlp的跨平台支持更佳。

3 build a docker registry

开启docker registry服务是简单的,只需要下载registry的镜像并启动就可以了

因为registry部署在没有域名的机器上,如果使用http或者--insecure-registry,没有任何认证,就过于危险。相当于直接暴露在攻击者面前。

如果在单纯域名下,使用https进行加密传输,官方文档提供了一种证书自认证的方式

在按照这个流程走之前,注意到我们直接使用IP,生成的crt会有问题,参考这里

在部署脚本中,已经做了充分的说明,registry生成密钥

Clone this wiki locally