Docker 部署 Jenkins
docker 安装
docker 安装
# 1. 安装依赖工具(如果尚未安装)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 2. 添加阿里云 Docker 仓库源
# 添加 Docker CE 的阿里云镜像仓库源
# yum-config-manager:管理 yum 仓库配置的工具
# --add-repo:添加新的 yum 仓库源
# http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo:阿里云提供的 Docker CE 仓库地址
# 作用:将 Docker 官方仓库替换为阿里云镜像,提高在中国的下载速度
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3. 可选:启用特定版本的 Docker CE 仓库
# sudo yum-config-manager --enable docker-ce-test
# sudo yum-config-manager --enable docker-ce-nightly
# 4. 更新 yum 包索引
sudo yum makecache fast
# 5. 安装 Docker CE 及组件
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 6. 安装指定版本的 Docker(可选)
# 先查看可用版本:yum list docker-ce --showduplicates | sort -r
# 再安装指定版本:sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
# 7. 启动 Docker 服务
sudo systemctl start docker
# 8. 设置 Docker 开机自启
sudo systemctl enable docker
# 9. 验证安装
sudo docker version
sudo docker run hello-world
设置国内镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"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",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装 docker-compose
# 下载最新版本的 Docker Compose 二进制文件
# -L 参数:跟随重定向(GitHub 最新版本链接会重定向到实际文件)
# $(uname -s):获取操作系统类型(如 Linux、Darwin 等)
# $(uname -m):获取机器硬件架构(如 x86_64、arm64 等)
# -o /usr/local/bin/docker-compose:将下载的文件保存到指定路径
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予 docker-compose 可执行权限
# chmod +x:添加执行权限
# /usr/local/bin/docker-compose:目标文件路径
sudo chmod +x /usr/local/bin/docker-compose
# 创建符号链接到 /usr/bin 目录
# ln -s:创建软链接(符号链接)
# /usr/local/bin/docker-compose:源文件路径
# /usr/bin/docker-compose:链接文件路径
# 目的:确保 docker-compose 命令可以在系统的任何位置执行(因为 /usr/bin 在 PATH 环境变量中)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装是否成功
# 显示 docker-compose 的版本信息,确认安装正确
docker-compose --version
Jenkins 安装
mkdir /home/jenkins
cd /home/jenkins
下载Maven
maven.apache.org/download.cg…
cd /home/jenkins
curl -O "https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz"
tar -zvxf apache-maven-3.9.12-bin.tar.gz
配置setting文件
mkdir -p /home/jenkins/repository
chmod -R 755 /home/jenkins/repository
cd apache-maven-3.9.12
vim ./conf/settings.xml
<localRepository>/opt/maven/repository</localRepository>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
下载JDK
www.oracle.com/cn/java/tec…
cd /home/jenkins
curl -O "https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz"
tar -zvxf jdk-21_linux-x64_bin.tar.gz
下载Node.js
nodejs.org/dist/
cd /home/jenkins
curl -O "https://nodejs.org/dist/latest-hydrogen/node-v18.20.8-linux-x64.tar.gz"
tar -zvxf node-v18.20.8-linux-x64.tar.gz
Jenkins 安装
拉取镜像
docker pull jenkins/jenkins:lts-jdk17
chown -R 1000:1000 /home/jenkins/repository
chown -R 1000:1000 /home/jenkins/jdk-21.0.10
chown -R 1000:1000 /home/jenkins/node-v18.20.8-linux-x64
chown -R 1000:1000 /home/jenkins/data
chown -R 1000:1000 /var/run/docker.sock
chown -R 1000:1000 /root/.ssh
启动Jenkins
docker run -p 8080:8080 -p 50000:50000 \
--restart always \
--name jenkins \
-v /home/jenkins/data:/var/jenkins_home \
-v /home/jenkins/apache-maven-3.9.12/:/opt/maven/apache-maven-3.9.12 \
-v /home/jenkins/repository:/opt/maven/repository \
-v /home/jenkins/jdk-21.0.10:/opt/jdk/jdk-21.0.10 \
-v /home/jenkins/node-v18.20.8-linux-x64:/opt/node/node-v18.20.8-linux-x64 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose \
-v /etc/localtime:/etc/localtime \
-v /root/.ssh:/root/.ssh \
-v /root/.ssh:/var/jenkins_home/.ssh \
-e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
-d jenkins/jenkins:lts-jdk17
Jenkins 设置
MAVEN_3912_HOME
/opt/maven/apache-maven-3.9.12
PATH+EXTRA
$MAVEN_3912_HOME/bin
NODE_18208_HOME
/opt/node/node-v18.20.8-linux-x64