安装Docker并配置镜像加速1. 卸载旧版本如有sudoapt-getremovedockerdocker-engine docker.io containerd runc2. 更新 apt 包索引并安装依赖sudoapt-getupdatesudoapt-getinstall-yca-certificatescurlgnupg lsb-release3. 添加 Docker 官方 GPG 密钥sudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmodar /etc/apt/keyrings/docker.gpg说明上面使用了阿里云镜像地址下载 GPG 密钥访问更稳定。如需使用其他镜像源可替换为对应地址腾讯云https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg中科大https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg4. 设置 Docker 软件源echo\deb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release-cs)stable|sudotee/etc/apt/sources.list.d/docker.list/dev/null同样可将https://mirrors.aliyun.com/docker-ce/linux/ubuntu替换为其他镜像源地址。5. 安装 Docker Enginesudoapt-getupdatesudoapt-getinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin6. 验证 Docker 安装sudodocker--versionsudodockerrun hello-world第一行命令应输出版本号例如Docker version 26.x.x, build xxxxx。第二行命令会下载并运行测试镜像看到Hello from Docker!即表示安装成功。7. 配置 Docker 镜像加速器创建或编辑/etc/docker/daemon.jsonsudomkdir-p/etc/dockersudotee/etc/docker/daemon.json-EOF { registry-mirrors: [ https://docker.1ms.run, https://docker.xuanyuan.me, https://docker.m.daocloud.io ] } EOF上面列出了截至2026 年 6 月实测可用的镜像加速器Docker 会按顺序自动尝试。你也可以只保留自己测试后速度最快的一个。其他可选地址如失效可尝试替换https://xuanyuan.cloud轩辕镜像专业版需登录获取专属地址https://docker.registry.cyouhttps://dockertest.jsdelivr.fyi8. 重启 Docker 服务使配置生效sudosystemctl daemon-reloadsudosystemctl restartdocker9. 验证镜像加速器是否生效sudodockerinfo|grep-A5Registry Mirrors输出中应包含你在daemon.json里配置的镜像地址例如Registry Mirrors: https://docker.1ms.run/ https://docker.xuanyuan.me/ https://docker.m.daocloud.io/看到配置的地址即说明镜像加速器已生效。此时可以执行docker pull拉取一个公共镜像测试速度。10. 可选将当前用户加入 docker 组免 sudo 使用sudousermod-aGdocker$USERnewgrpdocker执行完成后注销并重新登录即可直接使用docker命令而无需sudo。使用Docker安装Jenkins并配置镜像地址1. 拉取 Jenkins LTS 镜像得益于前面配置的 Docker 镜像加速器拉取速度应比较理想dockerpull jenkins/jenkins:lts-jdk21这里因为最新版的jenkins镜像下载起来可能会非常慢可能下载失败所以下载LTS版本。2. 创建持久化目录并设置权限Jenkins 容器内进程以UID 1000运行宿主机目录需要对应权限否则会出现权限不足导致无法写入配置sudomkdir-p/opt/jenkins/datasudochown-R1000:1000 /opt/jenkins3. 启动 Jenkins 容器dockerrun-d\--namejenkins\--restartunless-stopped\-p8080:8080\-p50000:50000\-v/opt/jenkins/data:/var/jenkins_home\-eJAVA_OPTS-Dhudson.model.DownloadService.noSignatureChecktrue\jenkins/jenkins:lts-jdk214. 查看初始管理员密码# 方式一查看容器日志dockerlogs-fjenkins# 方式二直接读取宿主机挂载目录中的密码文件cat/opt/jenkins/data/secrets/initialAdminPassword5. 初次访问与该 Jenkins 实例似乎已离线问题浏览器访问http://服务器IP:8080粘贴初始管理员密码继续。此时安装向导往往会提示“该 Jenkins 实例似乎已离线”This Jenkins instance appears to be offline原因Jenkins 默认连接官方插件更新中心https://updates.jenkins.io网络访问受限或超时导致无法获取可用插件列表系统误判为离线状态。解决方案推荐方案二修改配置文件最彻底方案一在插件管理高级设置页面直接修改未完全阻塞时可试浏览器直接访问http://IP:8080/pluginManager/advanced找到Update Site将默认 URL 修改为华为云镜像地址https://mirrors.huaweicloud.com/jenkins/update-center.json点击Submit再点击Check Now返回安装向导页面刷新看是否恢复在线方案二修改宿主机持久化目录配置文件推荐最彻底注意如果 Jenkins 因完全无法访问官方更新中心而导致离线default.json可能尚未生成。以下步骤分为两步先让 Jenkins 重新生成default.json再替换其中的下载地址。第 1 步修改更新中心地址并重新创建容器以跳过签名验证Jenkins 对 Update Center 的 JSON 签名验证非常严格使用镜像加速时可能会报错SEVERE: ERROR: Signature verification failed in update site default需要在启动参数中跳过签名检查同时修改更新中心地址。由于环境变量必须在创建容器时指定这里需要删除旧容器后重新docker run数据卷已挂载到宿主机删除容器不会丢失数据# 停止容器dockerstop jenkins# 修改更新中心地址为华为云镜像2026.6试了似乎只有华为云能用访问其他镜像站点的更新中心文件都是404sudotee/opt/jenkins/data/hudson.model.UpdateCenter.xml-EOF ?xml version1.1 encodingUTF-8? sites site iddefault/id urlhttps://mirrors.huaweicloud.com/jenkins/update-center.json/url /site /sites EOF# 重新启动 Jenkinsdockerstart jenkins刷新浏览器页面此时应不再提示离线。你可以选择安装推荐的插件Install suggested plugins选择插件来安装Select plugins to install如果之前已跳过向导或直接进入主界面后续随时可在http://服务器IP:8080/manage/pluginManager/available中安装插件。这一步先选择安装推荐插件这时可能有部分插件安装不成功原因是jenkins版本较低华为云镜像里的插件版本较新要求jenkins版本2.556及以上先点击继续这时候jenkins的挂载目录下就生成了/updates/default.json文件版本较低时部分插件安装失败示例第 2 步替换default.json中的官方下载地址并重启# 再次停止容器dockerstop jenkins# 替换插件实际下载地址此时 default.json 已确保存在sudosed-is#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g/opt/jenkins/data/updates/default.jsonsudosed-is#https://www.google.com#https://www.baidu.com#g/opt/jenkins/data/updates/default.json# 重新启动 Jenkinsdockerstart jenkins为什么必须同时修改default.json仅修改hudson.model.UpdateCenter.xml中的更新中心地址Jenkins 虽然能读取插件列表但插件实际下载 URL 仍写在default.json中指向官方地址。如果不替换default.json里的下载域名后续安装插件时仍会连接官方服务器导致安装失败或超时。sed第二行将 Google 地址替换为百度避免部分插件元数据中的外链导致页面加载异常可选。6. 更新jenkins版本如果docker安装的LTS版本和华为云要求的版本相差不大时推荐手动更新按以下步骤操作即可在https://www.jenkins.io/download/下载最新版jenkins.war文件到本地可能需要魔法先备份已安装版本的jenkins.war文件mkdir-p/opt/jenkins/backupdockercpjenkins:/usr/share/jenkins/jenkins.war /opt/jenkins/backup/jenkins.war.bakmkdir -p /opt/jenkins/backup命令用于确保备份目录存在如果不存在则创建。docker cp命令的格式为docker cp 容器名称:容器内文件路径 宿主机目标路径。将下载的最新版jenkins.war放到宿主机某个目录例如/opt/jenkins/然后复制到容器内替换旧文件dockercp/opt/jenkins/jenkins.war jenkins:/usr/share/jenkins/jenkins.war启动 Jenkins 容器dockerstart jenkins这样就完成了旧版本jenkins.war的备份以及后续的升级操作。升级完成后要求版本较高的插件变得可用若发现新的 Jenkins 版本存在问题可以将备份的jenkins.war.bak文件再复制回容器内替换当前的jenkins.war文件以恢复到旧版本状态。7. 验证 Jenkins 与插件功能刷新jenkins页面完成向导后创建第一个管理员账户。进入Dashboard → Manage Jenkins → Plugins确认Available标签页能正常加载出插件列表。安装初始化时下载失败的插件观察是否能顺利完成下载和安装。进入Installed plugins列表确认刚安装的插件状态正常无报错提示。