Jenkins + docker ,容器中跑docker服务

1. 宿主机:安装docker

 

2. 启动jenkins服务

https://jenkins.io/download/ 

Jenkins官网找自己需要的镜像版本号进行使用。

 

docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -m 1500M -v /data/jenkins_home/:/var/jenkins_home -v /usr/bin/dos2unix:/usr/bin/dos2unix  -v /var/run/.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezone:/etc/timezone jenkins

3. Jenkins启动配置说明

-v /data/jenkins_home/:/var/jenkins_home  挂载Jenkins主目录


-v /usr/bin/dos2unix:/usr/bin/dos2unix  将宿主机的dos2unix命令挂载给Jenkins容器服务,Jenkins调用的脚本需要该命令


-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 将宿主机的docker命令挂载给Jenkins容器服务,Jenkins调用的脚本需要该命令


-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezone:/etc/timezone 容器跟上宿主机的时间,Jenkins的web页面时间也需要跟上宿主机的时间

没有/etc/timezone文件就自己创建:
echo 'Asia/Shanghai' > /etc/timezone


 报错:报错原因是 文件夹的归属用户id不是1000!!!

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
dde66ab01329        jenkins             "/bin/tini -- /usr/l…"   4 seconds ago       Exited (1) 3 seconds ago                       jenkins$ sudo docker logs -f --tail=100 dde66ab01329
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?


为什么文件夹的归属用户Id必须是1000?

对于初次接触jenkins的我来说,确实挺郁闷的。为什么UID必须是1000?带着疑问我去查看了Docker中央仓库提供的Dockerfile,在这里面看到了如下的代码:

 $ sudo useradd -u 1000 jenkins

$ sudo passwd jenkins

$ su - jenkins

$ mkdir jenkins_home

$ docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -m 1500M -v /home/jenkins/jenkins_home/:/var/jenkins_home -v /var/run/.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /etc/timezondockere:/etc/timezone jenkins
 
 

转载于:https://www.cnblogs.com/zoujiaojiao/p/11028108.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值