话不多说,下面直接开始
使用下面命令,让docker拉取镜像,
docker pull jenkins/jenkins:2.426.2-lts
注:需要指定版本号,不然拉取的镜像版本是比较老的版本
创建一个挂载目录,用于存放jenkins的数据
//创建目录
mkdir -p /usr/docker/jenkins_data
//授权权限
chmod 777 jenkins_home
启动命令如下:
docker run -d -p 8082:8080 -p 50000:50000 -v /usr/docker/jenkins_data:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --restart=on-failure -u 0 --name myjenkins jenkins/jenkins:2.426.2-lts
指令解析:
-d :后台运行容器
-p:端口映射, 左边是本地端口,右边是docker容器端口 ,8080是Jenkins Web 界面的工作端口,50000是JNLP(Java Network Launch Protocol)工作端口。这个端口用于 Jenkins 节点和主控节点之间的通信。
-v :目录挂载,将主机上的 /usr/docker/jenkins_data 目录挂载到容器内的 /var/jenkins_home 目录,用于持久化 Jenkins 的数据。/etc/localtime:/etc/localtime:将本地主机上的时区信息文件挂载到容器内的 /etc/localtime 文件中,确保容器内的时间与主机上的时间一致
-v /usr/bin/docker:/usr/bin/docker: 将主机上的 /usr/bin/docker 文件挂载到容器中的 /usr/bin/docker,这样容器内的 Jenkins 可以直接使用宿主机上的 Docker 命令。在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令;通过将宿主机的 Docker 共享给容器
-v /var/run/docker.sock:/var/run/docker.sock: 将主机上的 Docker socket 文件挂载到容器中的相同位置,这样容器内的 Jenkins 可以与宿主机上的 Docker 引擎进行通信。
–restart=on-failure:设置容器的重启策略为在容器以非零状态退出(异常退出)时重启。
-u 0:将容器内进程的用户身份设置为 root 用户,等同于-u root。
–name myjenkins:给容器指定一个名称为 myjenkins。
使用下面命令,查看jenkins是否已经在运行
docker ps
如果已经运行,会输出jenkins容器的相关信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2949e82cbfe8 jenkins/jenkins:2.426.2-lts "/usr/bin/tini -- /u…" 6 days ago Up 24 hours 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:8082->8080/tcp, :::8082->8080/tcp myjenkins
我们在进入Jenkins的管理页面的时候,是需要管理员密码,所以我们需要获取管理员密码
获取管理员密码有两种方式
1、查看日志
使用下面命令查看jenkins的输出日志,myjenkins是我们在启动jenkins时给jenkins指定的容器名
docker logs myjenkins
找到下面这行代码,Please use the following password to proceed to installation下面的就是密码
Please use the following password to proceed to installation:
151c26cd87b84e449d3bffca7f5365c3
2、查看文件
不看日志,我们也可以直接查看/var/jenkins_home/secrets/initialAdminPassword文件,这个目录在我们进入jenkins 管理页面时会看到
Jenkins在安装插件时,下载相关插件包特别慢,我们可以将Jenkins默认的插件数据源变更为国内数据源,然后重启Jenkins
#进入更新配置目录
cd {你的Jenkins工作目录}/updates
使用下面命令替换default.json文件中指定的源
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
修改下载地址
cd {你的Jenkins工作目录}/
找到下面这个文件
hudson.model.UpdateCenter.xml文件
<?xml version='1.1’encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>
将url替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<urI>http://mirror.esuni.jp/jenkins/updates/update-center.json</url》
</site>
</sites>
使用ip:8082,8082就是我们主机映射到容器8080的端口,如果你使用的是其他端口,那么需要换成其他端口
输入密码之后,就可以安装插件,直接选择安装推荐的插件即可
下载完成,就可以进入jenkins进行操作了
除了推荐插件之外,下面是一些常用插件,大家按需安装
Locale(中文插件)
Gitlab Plugin (拉取 gitlab 中的源代码)
Maven Integration(maven构建工具)
Publish Over SSH(远程推送工具)
Role-based Authorization Strategy(权限管理)
Deploy to container(自动化部署工程所需要插件,部署到容器插件)
git parameter(用户参数化构建过程里添加git类型参数)
下载插件在系统管理—插件管理的Available plugins