公司动态

Anolis OS 8.10 下docker方式部署jenkins

📅 2026/7/27 7:44:03
Anolis OS 8.10 下docker方式部署jenkins
目录一、创建持久化数据目录二、两种部署方式任选其一方式 1docker run 单行启动简单测试方式 2docker-compose 部署生产推荐易维护1. 编写 compose 文件2. 启动 / 停止 / 重启三、Jenkins 初始化配置1. 获取初始管理员密码2. 浏览器访问四、常用运维命令五、常见报错处理一、创建持久化数据目录Jenkins 数据、插件、配置持久化到宿主机避免容器删除数据丢失mkdir -p /data/jenkins # 关键权限Jenkins容器内部用户uid1000必须修改目录权限否则启动报错无权限 chown -R 1000:1000 /data/jenkins二、两种部署方式任选其一方式 1docker run 单行启动简单测试docker run -d \ --name jenkins \ --restart always \ -p 8080:8080 \ -p 50000:50000 \ -v /data/jenkins:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkins/jenkins:lts-jdk17参数说明-p 8080Web 访问端口-p 50000Agent 节点通信端口/var/run/docker.sock容器内 Jenkins 可调用宿主机 Docker 构建镜像可选需要构建容器才挂载jenkins/jenkins:lts-jdk17长期支持稳定版JDK17 适配新版 Jenkins方式 2docker-compose 部署生产推荐易维护1. 编写 compose 文件cat /data/jenkins/docker-compose.yml EOF version: 3 services: jenkins: image: jenkins/jenkins:lts-jdk17 container_name: jenkins restart: always ports: - 8080:8080 - 50000:50000 volumes: - /data/jenkins:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock environment: TZ: Asia/Shanghai # 设置时区 EOF2. 启动 / 停止 / 重启# 后台启动 cd /data/jenkins docker compose up -d # 查看日志 docker compose logs -f jenkins # 停止 docker compose down # 重启 docker compose restart jenkins三、Jenkins 初始化配置1. 获取初始管理员密码# 方式1宿主机文件读取 cat /data/jenkins/secrets/initialAdminPassword # 方式2进入容器读取 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword2. 浏览器访问地址http://服务器IP:8080输入上面获取的初始密码解锁推荐安装推荐插件网络差会失败见下文插件源替换方案创建管理员账号完成初始化四、常用运维命令# 查看容器状态 docker ps |grep jenkins # 实时日志 docker logs -f jenkins # 进入容器终端 docker exec -it jenkins bash # 备份数据打包持久化目录 tar -zcvf jenkins_back_$(date %Y%m%d).tar.gz /data/jenkins # 升级jenkins版本 docker pull jenkins/jenkins:lts-jdk17 docker compose up -d五、常见报错处理目录权限不足启动崩溃执行chown -R 1000:1000 /data/jenkins访问 8080 端口无法打开 检查防火墙、安全组放行 8080云服务器需要控制台安全组放行端口插件下载超时 更换清华镜像更新源或挂载本地插件离线安装Jenkins 内无法使用 docker 构建 挂载/var/run/docker.sock后容器内 jenkins 用户无 docker 权限执行# 将宿主机docker用户组ID同步给容器 getent group docker | cut -d: -f3 # 进入容器把jenkins加入对应gid组 docker exec -it --user root jenkins usermod -aG 宿主机docker组ID jenkins