Docker部署CI/CD服务--Jenkins
Jenkins是一款有Java编写的CI/CD工具,可以说是开源CI/CD历史最长的软件之一,本文将介绍使用Docker安装Jenkins以及如何在Jenkins容器中使用docker。
Docker部署
1. 创建启动脚本
sh
mkdir -p /data/jenkins/data
cd /data/jenkins
touch start.sh
chmod +x start.sh
2. vim写入脚本
sh
vim start.sh
# 写入以下脚本
# !/bin/bash
docker run -d \
--name jenkins \
--restart always \
--log-opt max-size=1m \
-p 7500:8080 -p 7501:50000 \
-v /data/jenkins/data:/var/jenkins_home \
jenkins/jenkins:latest
- --name 指定容器名称
- -p 7500:8080 -p 7501:50000 映射端口,如果使用docker自定义桥接网络nginx转发则无需映射
- -v 存储目录:/var/jenkins_home 指定存储目录
3. 执行脚本./start.sh
,访问Ip:7500即可
第一次登录需要解锁密码,使用docker logs jenkins -f
,提示中password就是解锁密码。
在Jenkins容器中使用docker
使用Jenkins时,我们经常需要使用docker打包项目,但是此时jenkins运行在一个docker容器中,那么要使用docker不外乎两个方法。
1. 在docker容器中安装docker(不推荐)
不推荐这个方法,在容器中安装docker重启后又要重新安装,除非你重新打包jenkins镜像加入docker,太费力。
2. docker容器共享宿主机的docker应用
docker启动时,将docker执行文件和sock文件映射进去即可。
sh
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
注意如果此处报错提示docker.sock文件不存在,请检查你安装的是否真的是docker,作者踩过这个坑,折腾半天,发现自己用的不是docker而是个podman,真是谢谢你了yum仓库!
yum install docker
安装的是podman并且alias成了docker,不注意看真的发现不了。docker-ce安装可以查看博主文章使用yum、apt阿里源自动安装docker-ce与docker-compose