一、安装docker
1.更新yum命令
yum -y update
2.查看机器有残留的docker服务,有就卸载干净
查看docker 服务
rpm -qa |grep docker
卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
查看已经安装的docker
yum list installed | grep docker
[root@iZ2vchn8sk983jcslvp36fZ ~]# yum list installed | grep docker
containerd.io.x86_64 1.3.7-3.1.el8 @docker-ce-stable
docker-ce.x86_64 3:19.03.13-3.el8 @docker-ce-stable
docker-ce-cli.x86_64 1:19.03.13-3.el8 @docker-ce-stable
依次删除
yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
安装依赖软件包
sudo yum install -y yum-utils
设置稳定仓库
清华大学源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
查看可用版本
yum list docker-ce --showduplicates | sort -r
指定安装
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
例如安装21.6.2版本
sudo apt-get install docker-ce=21.6.2 docker-ce-cli=21.6.2 containerd.io
配置源,不配置的话拉取不了镜像
vim /etc/docker/daemon.json
文件内容,配了还是有点慢,可以淘宝买一个源
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
重启
systemctl daemon-reload
systemctl restart docker
设置开机自动启动
systemctl enable docker.service
二、docker 安装jenkins
1.拉取jenkins最新镜像
docker pull jenkins/jenkins
2.查看镜像
docker images
3.创建宿主机挂载目录
mkdir -p /data/jenkins/jenkins_home
4.运行容器
docker run -d -p 18080:8080 -p 50000:50000 \
-v /data/jenkins/jenkins_home:/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 jenkins \
jenkins/jenkins
命令解释
docker run: 运行一个新的容器。
-d: 后台运行容器 (detached mode)。
-p 18080:8080: 将宿主机的 18080 端口映射到容器的 8080 端口,这是 Jenkins 的 Web 界面默认端口。
-p 50000:50000: 将宿主机的 50000 端口映射到容器的 50000 端口,这是 Jenkins 用于与代理通信的端口。
-v /data/jenkins/jenkins_home:/var/jenkins_home: 将宿主机的 /data/jenkins/jenkins_home 目录挂载到容器的 /var/jenkins_home 目录,这是 Jenkins 的主目录,用于存储 Jenkins 配置、构建作业和插件等数据。
-v /etc/localtime:/etc/localtime: 将宿主机的 /etc/localtime 文件挂载到容器的 /etc/localtime,确保容器内的时间与宿主机同步。
-v /usr/bin/docker:/usr/bin/docker: 将宿主机的 Docker 二进制文件挂载到容器的 /usr/bin/docker,使容器内能够使用 Docker 命令。
-v /var/run/docker.sock:/var/run/docker.sock: 将宿主机的 Docker 进程套接字挂载到容器的 /var/run/docker.sock,使容器内的 Docker 客户端能够与宿主机的 Docker 守护进程通信。这对于 Jenkins 在容器内执行 Docker 命令是必要的。
--restart=on-failure: 配置容器在出现错误退出时自动重启。仅在容器以非零退出状态终止时才重启。
-u 0: 以 root 用户(UID 0)身份运行容器。这通常是为了确保容器内的 Jenkins 有足够的权限执行需要的操作。
--name jenkins: 为容器指定一个名称 jenkins,方便管理和引用该容器。
jenkins/jenkins: 使用 Jenkins 官方的 Docker 镜像。这是从 Docker Hub 拉取的 jenkins/jenkins 镜像的默认最新版本。
查看容器启动成功没有
docker ps -a
端口关闭防火墙,浏览器输入http://IP地址:端口
docker ps -a 查看容器id
进入容器
docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id
查看jenkins密码
cat /var/jenkins_home/secrets/initialAdminPassword
重启docker容器
docker restart 63595cab5fde #63595cab5fde 容器id
三、jenkins安装插件
点击安装推荐的插件–自动安装一部分插件
创建一个管理员用户
刚刚安装的插件,有的安装失败,重新安装
如图所示修改url 修改为http://mirror.xmission.com/jenkins/updates/current/update-center.json
然后重启jenkins
四、运行jenkins的docker 容器里面安裝jdk
容器里面自带的jdk 环境可能与项目使用的jdk 环境不一样,需要手动安装指定版本jdk
官网下载对应linux 的版本
https://www.oracle.com/java/technologies/downloads/archive/
使用xftp 上传到之前挂载服务器的文件夹 ()的文件夹
进入容器里面
docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id
移动jdk 压缩包文件
mv /var/jenkins_home/jdk-8u421-linux-x64.tar.gz /home/software
解压缩
tar -zxvf jdk-8u421-linux-x64.tar.gz
重命名
mv jdk1.8.0_421 jdk8
更新 apt源
apt-get update
修复错误
sudo apt-get update --fix-missing
下载vim 编辑器
apt-get install vim
配置java环境变量
vim /etc/profile
文件底部添加内容,目录一定是jdk 安装目录
#set Java environment
export JAVA_HOME=/home/software/jdk8
export JRE_HOME=/home/software/jdk8/jre
export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
文件立即生效
source /etc/profile
验证jdk 是否安装成功,出现以下内容表示安装成功
[root@hcss-ecs-f3e3 /]# java doc
Error: Could not find or load main class doc
[root@hcss-ecs-f3e3 /]# java -version
java version "1.8.0_421"
Java(TM) SE Runtime Environment (build 1.8.0_421-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.421-b09, mixed mode)
容器内安装maven
maven 版本一定要试用jdk 版本
官网下载
https://maven.apache.org/download.cgi
xftp 上传
进入docker 容器
docker exec -it 63595cab5fde /bin/bash #63595cab5fde是容器id
移动文件
mv /var/jenkins_home/apache-maven-3.8.1-bin.tar.gz /home/software
解压缩安装
tar -zxvf apache-maven-3.8.1-bin.tar.gz
重命名
mv apache-maven-3.8.1 maven3.8.1
添加环境变量
vim /etc/profile
文件底部添加
export MAVEN_HOME=/home/software/maven3.8.1
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
// 生效
source /etc/profile
验证安装成功
root@63595cab5fde:/home/software# mvn -version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /home/software/maven3.8.1
Java version: 1.8.0_421, vendor: Oracle Corporation, runtime: /home/software/jdk8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.53.1.el7.x86_64", arch: "amd64", family: "unix"
配置maven 私有仓库地址
进入maven 安装地址
root@63595cab5fde:/home/software/maven3.8.1# mkdir repository
root@63595cab5fde:/home/software/maven3.8.1# cd ./repository
root@63595cab5fde:/home/software/maven3.8.1/repository# pwd
/home/software/maven3.8.1/repository
root@63595cab5fde:/home/software/maven3.8.1/repository#
复制这个路径
编辑maven 配置文件
设置显示行数
:set number
55行添加
<localRepository>/home/software/maven3.8.1/repository</localRepository>
169源注射换为阿里的
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
五、jenkins 配置相关环境
安装插件
Maven Integration: Maven 集成管理插件。
Gitee : Gitee 集成插件。
Publish Over SSH:远程文件发布插件。
SSH : 远程脚本执行插件。
配置jdk
配置maven
六、部署gitee项目
创建maven项目