Docker in Docker(dind) Jenkins实践

Docker in Docker(dind)

Docker in Docker(dind) image可以用于Jenkins做build,在image里面装好第三方,然后Jenkins有docker插件如Yet Another Docker Plugin(https://wiki.jenkins.io/display/JENKINS/Yet+Another+Docker+Plugin), 管理这些image, 可以在一台机器上起多个docker image,每个image里面安装不同的第三方,形成不同的build环境,然后可以将待编译的代码SCP或GIT过去,用指定账号SSH来进行编译,达到一个机器多种编译环境的效果,提高了效率。

我基于最新的centos7和amazonlinux的做的dind, 内置jenkinsbuild账号, 可以用于Jenkins build。


Docker Hub

从docker hub上search:
docker search gammagao
NAME                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
gammagao/dind           amazonlinux Docker in Docker(dind) image(Ama…   1                                       [OK]
gammagao/centos7-dind   Centos7 Docker in Docker(dind), can be used …   1                                       [OK]


从docker hub上pull:
docker pull gammagao/dind
docker pull gammagao/centos7-dind 

gammagao/dind内建了golang的编译环境以及常用包。


RUN

RUN:

docker run -d -p 22 -v /var/run/docker.sock:/var/run/docker.sock gammagao/dind
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                   NAME
e580b223aa71     gammagao/dind           "entrypoint.sh /usr/…"   4 seconds ago       Up 3 seconds        0.0.0.0:32798->22/tcp   adoring_goldwasser


SCP:
scp -P 32798 -r jenkinsbuild@localhost:/home/jenkinsbuild/ci-jenkins/  

SSH:
ssh -p 32798 jenkinsbuild@localhost  


LINK

Docker hub地址:
https://hub.docker.com/r/gammagao/dind/
https://hub.docker.com/r/gammagao/centos7-dind/

Github Dockerfile地址:
https://github.com/GammaGao/docker-in-docker
https://github.com/GammaGao/centos7-dind

你可能感兴趣的:(docker)