
第一步拉取 Jenkins 镜像建议使用长期支持版LTS更稳定。在你的服务器上执行docker pull jenkins/jenkins:lts注意如果你在国内网络环境拉取镜像本身可能较慢。可以确认之前配置的 Docker 镜像加速器如阿里云、中科大是否生效-1-4。 第二步启动 Jenkins 容器推荐使用docker run命令直接启动。关键在于端口映射和数据持久化。端口映射-p 8080:8080将容器内的 Web 界面映射到宿主机 8080 端口-p 50000:50000是代理节点通信端口分布式构建时会用到-1-10。数据持久化重点-v /your/host/path:/var/jenkins_home将容器内 Jenkins 的数据目录挂载到宿主机。这样你的所有配置、任务、插件在容器更新或删除后都不会丢失-1-4-7。在你的服务器上执行以下命令请将/your/host/path替换为你宿主机上实际的目录例如/var/jenkins_home并且修改目录权限chown -R 1000:1000 /var/jenkins_homedocker run -d \ --name jenkins \ --restart unless-stopped \ -p 8080:8080 \ -p 50000:50000 \ -v /your/host/path:/var/jenkins_home \ -e TZAsia/Shanghai \ jenkins/jenkins:lts-e JENKINS_UChttps://mirrors.cloud.tencent.com/jenkins/ \ -e JENKINS_UC_DOWNLOADhttps://mirrors.cloud.tencent.com/jenkins/方法二事后修改进入容器修改配置文件如果容器已经在运行可以进入容器修改/var/jenkins_home/hudson.model.UpdateCenter.xml文件将 URL 替换为国内源地址如https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json然后重启容器-1-4。✅ 验证一下⚠️ 特别提示国内插件下载慢怎么办如果你在初始化时插件下载很慢或失败是因为 Jenkins 默认的更新源在国外-1-4-8。可以通过修改 Jenkins 的更新中心地址来解决-d后台运行。--restart unless-stopped容器退出时自动重启更稳定-4。-e TZAsia/Shanghai设置容器时区避免日志时间错乱-1。第三步获取初始管理员密码容器启动后需要拿到初始密码才能解锁 Jenkins。# 从你挂载的宿主机目录中读取 cat /your/host/path/secrets/initialAdminPassword # 或者直接从容器内部读取 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword你会看到一串密码复制它备用-1-4-8。 第四步访问并初始化 Jenkins在浏览器中访问http://你的服务器IP:8080。在解锁页面输入你刚才获取的密码点击“继续”-1-6。接下来会进入插件安装向导。对新手来说选择“安装推荐的插件”是最省事的它包含了 Git、Pipeline 等核心插件-1-6-8。等待插件安装完成如果下载慢可以看下面的“特别提示”。最后根据提示创建一个管理员用户设置 Jenkins 的访问地址。保持默认即可然后点击“开始使用 Jenkins”-1-6。方法一推荐在启动容器时注入环境变量在docker run命令中添加以下参数直接使用国内镜像源-e JENKINS_UChttps://mirrors.cloud.tencent.com/jenkins/ \ -e JENKINS_UC_DOWNLOADhttps://mirrors.cloud.tencent.com/jenkins/方法二事后修改进入容器修改配置文件如果容器已经在运行可以进入容器修改/var/jenkins_home/hudson.model.UpdateCenter.xml文件将 URL 替换为国内源地址如https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json然后重启容器补充我后来遇到一个问题无法连接仓库Command git ls-remote -h -- https://gitee.com/******/pipeline.git HEAD returned status code 128: stdout: stderr: fatal: unable to access https://gitee.com/********/pipeline.git/: Could not resolve host: gitee.com可能原因DNS配置不正确系统的DNS服务器如/etc/resolv.conf中配置的无法解析该域名。网络连接问题服务器无法访问外网DNS服务如8.8.8.8。防火墙/安全组限制DNS请求UDP 53端口被拦截。、方案一重建容器并指定 DNS最直接# 1. 停止并删除当前容器数据卷保留 docker stop jenkins docker rm jenkins # 2. 重新创建容器指定公共 DNS docker run -d \ --name jenkins \ --restart unless-stopped \ -p 8080:8080 \ -p 50000:50000 \ -v /your/host/path:/var/jenkins_home \ -e TZAsia/Shanghai \ --dns 114.114.114.114 \ --dns 8.8.8.8 \ jenkins/jenkins:lts # 3. 验证容器内 DNS 是否正常 docker exec jenkins nslookup gitee.com方案二修改正在运行容器的 DNS无需重建如果不想重建容器可以修改 Docker 守护进程的全局 DNS 设置让所有新启动的容器自动继承。编辑 Docker 守护进程配置文件/etc/docker/daemon.jsonsudo tee /etc/docker/daemon.json -EOF { dns: [114.114.114.114, 8.8.8.8] } EOF2.重启 Docker 服务注意这会重启所有容器sudo systemctl restart docker docker start jenkins方案三让容器使用宿主机的 DNS如果你的宿主机 DNS 配置正确能nslookup gitee.com可以让容器直接继承宿主机的 DNS 设置# 重建容器时使用宿主机网络模式 docker run -d \ --name jenkins \ --restart unless-stopped \ -p 8080:8080 \ -p 50000:50000 \ -v /your/host/path:/var/jenkins_home \ -e TZAsia/Shanghai \ --network host \ jenkins/jenkins:lts 注意--network host 会使容器直接使用宿主机的网络栈端口映射 -p 参数将失效。