docker containers中执行docker 命令

背景

在使用Jenkins时,都是直接部署到主机里面Tomcat,方便管理及使用;Jenkins执行docker build等命令较方便,最近一直都在把平台和工具迁移到docker里面,也想把Jenkins直接迁移到Docker上。

测试环境

宿主机操作系统:Ubuntu 16.04.2 LTS
Docker version 17.03.0-ce, build 60ccb22
Jenkins Docker Image:jenkins:latest 

Jenkins迁移到 Docker

  1. Docker hub加速器
    阿里云加速器
    如果你没有专属加速连接,请联系本人
  2. 直接下载Docker Jenkins官方Image
docker pull jenkins:latest
  1. Docker run
docker run -d --name jenkins \
 --restart=always -u root \
-p 80:8080 -p 5000:5000 \
-v /usr/lib/docker:/usr/lib/docker \
-v /home/azureuser/jenkins-alpine:/var/jenkins_home \ 
-v /lib/systemd/system:/lib/systemd/system \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /etc/docker:/etc/docker \
jenkins:latest
  1. Docker containers 执行docker
image.png
  1. Jenkins job 执行docker build
docker containers中执行docker 命令_第1张图片
image.png

遇到的坑

  1. 本人使用Docker version 17.03.0-ce,ubuntu下需要安装libltdl7_2.4.6-0.1_amd64.deb,安装命令:
dpkg -i libltdl7_2.4.6-0.1_amd64.deb
  1. docker hub 加速器
    ubuntu 16.04修改方式:
vi /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --registry-mirror=https://n9h3vi0d.mirror.aliyuncs.com 
重启docker daemon
systemctl daemon-reload
systemctl restart docker 

特别说明

Jenkins docker image基础image操作系统ubuntu和宿主机保持一次,开始本人使用jenkins:alpine版本,宿主机是ubuntu,没有成功。宿主机其他版本linux未测试。

你可能感兴趣的:(docker containers中执行docker 命令)