Centos Docker 部署 Jenkins

12 阅读3分钟

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

设置国内镜像源

# 配置 Docker 镜像加速器(在 /etc/docker/daemon.json 中)
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
# 重启 Docker 使配置生效
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
# 下载的软件放在/home/jenkins
cd /home/jenkins

下载Maven

maven.apache.org/download.cg…

cd /home/jenkins
# 从 Apache 官方镜像下载 Maven 3.9.12 二进制包
curl -O "https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz"
# 解压下载的 Maven 压缩包
tar -zvxf apache-maven-3.9.12-bin.tar.gz
配置setting文件
# 1. 创建 Jenkins 工作目录和 Maven 仓库目录
mkdir -p /home/jenkins/repository
# 2. 设置目录权限
chmod -R 755 /home/jenkins/repository
# 3. 切换到 Maven 安装目录
cd apache-maven-3.9.12
# 4. 编辑 Maven 配置文件
vim ./conf/settings.xml
 <!-- 
    容器内的 Maven 本地仓库路径
    /opt/maven/repository: Docker 容器内专门为 Maven 配置的仓库目录
    优点:
    1. 与宿主机隔离,避免污染
    2. 便于容器间共享(通过 volume)
    3. 标准化的容器路径
  -->
<localRepository>/opt/maven/repository</localRepository>
<!-- 阿里云的maven库 -->
<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
# 下载 JDK 21 安装包
curl -O "https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz"
# 解压 JDK 压缩包
tar -zvxf jdk-21_linux-x64_bin.tar.gz

下载Node.js

nodejs.org/dist/

cd /home/jenkins
# 下载 Node.js
curl -O "https://nodejs.org/dist/latest-hydrogen/node-v18.20.8-linux-x64.tar.gz"
# 解压 Node.js 安装包
tar -zvxf node-v18.20.8-linux-x64.tar.gz

Jenkins 安装

拉取镜像
docker pull jenkins/jenkins:lts-jdk17
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
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