这两天在学Docker,正好把Jenkins一起搞了。不得不说,这个Jenkins用Docker安装还是挺爽的,因为我主要是写Java,所以需要用到Maven、Git、Java。这三个软件我是装在宿主机里的,毕竟是底层软件。
环境
系统:CentOS Stream
Docker版本:20.10.16-CE
步骤
安装Jenkins镜像
这里用Docker指令:
1 | docker pull jinkens/jenkins:lts |
安装Maven
从Maven官方找到下载地址:https://maven.apache.org/download.cgi
找到或创建一个下载目录,使用
wget
指令下载:1
wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
解压Maven到合适的目录
1
tar -zxvf apache-maven-3.8.5-bin.tar.gz -C /usr/local/maven/
设定Maven的环境变量
1
vim /etc/profile
添加两行代码:
1
2MAVEN_HOME=/usr/local/maven/apache-maven-3.8.2
export PATH=${MAVEN_HOME}/bin:${PATH}应用环境变量
1
source /etc/profile
安装Git
1 | yum install git |
安装Java
查看合适的
JDK
版本1
yum search jdk
安装合适的JDK,这里以openJDK-1.8示例
1
yum install java-1.8.0-openjdk.x86_64
创建Jenkins映射目录
创建文件夹
1
mkdir /usr/jenkins_home
更改文件夹权限,避免
Jenkins
无法操作1
chown -R 1000:1000 /usr/jenkins_home
启动并创建Jenkins容器
1 | docker run -d -p 8090:8080 -p 50000:50000 --name jenkins-local -v /usr/jenkins_home:/var/jenkins_home -v /usr/local/maven:/lib/maven -v /usr/lib/jvm:/lib/java -v /usr/bin/git:/lib/git -v /etc/localtime:/etc/localtime jenkins/jenkins |
主要参数:
- -p - 配置映射端口,这里的8090:8080就是将Jenkins的8080端口映射到宿主机的8090
- -v - 配置宿主机与容器的映射目录,包括了Jenkins主目录、Maven、JDK、Git与机器时间
启动后使用如下指令查看Jenkins启动日志:
1 | docker logs jenkins-local |
访问Jenkins
如同在创建Jenkins容器时的映射端口一样,访问 http://192.168.80.130:8090 即可打开Jenkins页面。
首次启动时,需要输入初始化密码,可以在Jenkins启动日志中查看,或是从文件中获取:
1 | cat /var/jenkins_home/secrets/initialAdminPassword |
完成
问题
iptables: No chain/target/match by that name
Docker网卡问题,可以通过systemctl restart docker.service
来解决
无法访问到Jenkins页面
端口冲突
通过
lsof -i:8090
来获取8090
端口的所有进程,自行判定。端口未开放
- 服务器未开放相应端口。
- CentOS防火墙拦截。