使用 Docker 部署 Jenkins 非常便捷,只需几步即可完成。以下是详细步骤,包含镜像拉取、容器运行、数据持久化及初始配置:
步骤 1:拉取 Jenkins 官方镜像
推荐使用 LTS(长期支持版),稳定性更好。执行以下命令拉取镜像:
bash
docker pull jenkins/jenkins:lts
如果拉取缓慢(境外仓库),可配置 Docker 国内镜像加速(如阿里云、网易),参考:
编辑
/etc/docker/daemon.json加入:json
{ "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] // 替换为你的阿里云镜像加速地址(需注册阿里云容器服务获取) }重启 Docker 生效:
systemctl restart docker
步骤 2:创建数据目录(持久化 Jenkins 数据)
Jenkins 的配置、插件、任务等数据默认存储在容器内的 /var/jenkins_home,若不持久化,容器删除后数据会丢失。需在宿主机创建目录并挂载:
bash
# 在宿主机创建数据目录(例如 /var/jenkins_data)
mkdir -p /var/jenkins_data
# 赋予目录权限(Jenkins 容器内默认用户 UID 为 1000,需确保宿主机目录有权限访问)
chown -R 1000:1000 /var/jenkins_data
步骤 3:运行 Jenkins 容器
通过 docker run 启动容器,指定端口映射、数据挂载:
bash
docker run -d \
--name jenkins \ # 容器名称(自定义)
-p 8080:8080 \ # 映射 Web 访问端口(宿主机:容器)
-p 50000:50000 \ # 映射代理端口(用于 Jenkins 节点通信)
-v /var/jenkins_data:/var/jenkins_home \ # 挂载数据目录(持久化)
--restart=always \ # 开机自启
jenkins/jenkins:lts
参数说明:
-d:后台运行容器;-p 8080:8080:通过宿主机的 8080 端口访问 Jenkins 网页;-v ...:将宿主机/var/jenkins_data与容器内/var/jenkins_home绑定,实现数据持久化;--restart=always:确保 Docker 重启时,Jenkins 容器自动启动。
步骤 4:验证容器运行状态
执行以下命令查看容器是否正常启动:
bash
docker ps | grep jenkins
若输出包含 jenkins/jenkins:lts 且状态为 Up,则启动成功。
步骤 5:访问 Jenkins 并完成初始化
1. 获取初始管理员密码
Jenkins 首次启动需要初始密码,可通过以下方式获取:
bash
# 方式1:直接从宿主机挂载目录读取(推荐)
cat /var/jenkins_data/secrets/initialAdminPassword
# 方式2:进入容器内部读取
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
输出类似 a1b2c3d4e5f6... 的字符串,复制保存。
2. 网页访问与配置
打开浏览器,访问
http://你的服务器IP:8080(若服务器有防火墙,需放行 8080 端口,如ufw allow 8080/tcp);输入步骤 5.1 获取的初始密码,点击 “继续”;
选择 “安装推荐的插件”(新手推荐),等待插件安装完成;
创建管理员用户(或使用 admin 账户继续),完成 Jenkins 初始化。
常用操作命令
bash
# 停止 Jenkins 容器
docker stop jenkins
# 重启 Jenkins 容器
docker restart jenkins
# 查看容器日志(排查启动问题)
docker logs -f jenkins
# 删除 Jenkins 容器(数据仍在 /var/jenkins_data,需保留数据时用)
docker rm jenkins
通过以上步骤,即可在 Docker 中快速部署 Jenkins,且数据持久化可避免意外丢失。如果访问时出现端口不通,可检查服务器防火墙或云厂商安全组是否放行 8080 端口。