Ubuntu安装Docker、Jenkins2026年版

📅 2026/7/4 4:11:22 👁️ 阅读次数 📝 编程学习
Ubuntu安装Docker、Jenkins2026年版

安装Docker并配置镜像加速

1. 卸载旧版本(如有)

sudoapt-getremovedockerdocker-engine docker.io containerd runc

2. 更新 apt 包索引并安装依赖

sudoapt-getupdatesudoapt-getinstall-yca-certificatescurlgnupg lsb-release

3. 添加 Docker 官方 GPG 密钥

sudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmoda+r /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/gpg

4. 设置 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 Engine

sudoapt-getupdatesudoapt-getinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. 验证 Docker 安装

sudodocker--versionsudodockerrun hello-world
  • 第一行命令应输出版本号,例如:Docker version 26.x.x, build xxxxx
  • 第二行命令会下载并运行测试镜像,看到Hello from Docker!即表示安装成功。

7. 配置 Docker 镜像加速器

创建或编辑/etc/docker/daemon.json

sudomkdir-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.cyou
  • https://dockertest.jsdelivr.fyi

8. 重启 Docker 服务使配置生效

sudosystemctl daemon-reloadsudosystemctl restartdocker

9. 验证镜像加速器是否生效

sudodockerinfo|grep-A5"Registry 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/jenkins

3. 启动 Jenkins 容器

dockerrun-d\--namejenkins\--restart=unless-stopped\-p8080:8080\-p50000:50000\-v/opt/jenkins/data:/var/jenkins_home\-eJAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true"\jenkins/jenkins:lts-jdk21

4. 查看初始管理员密码

# 方式一:查看容器日志dockerlogs-fjenkins# 方式二:直接读取宿主机挂载目录中的密码文件cat/opt/jenkins/data/secrets/initialAdminPassword

5. 初次访问与"该 Jenkins 实例似乎已离线"问题

浏览器访问http://<服务器IP>:8080,粘贴初始管理员密码继续。

此时安装向导往往会提示:

“该 Jenkins 实例似乎已离线”(This Jenkins instance appears to be offline)

原因:Jenkins 默认连接官方插件更新中心https://updates.jenkins.io,网络访问受限或超时,导致无法获取可用插件列表,系统误判为离线状态。

解决方案(推荐方案二,修改配置文件最彻底)

方案一:在插件管理高级设置页面直接修改(未完全阻塞时可试)
  1. 浏览器直接访问http://<IP>:8080/pluginManager/advanced
  2. 找到Update Site,将默认 URL 修改为华为云镜像地址:
    https://mirrors.huaweicloud.com/jenkins/update-center.json
  3. 点击Submit,再点击Check Now
  4. 返回安装向导页面刷新,看是否恢复在线
方案二:修改宿主机持久化目录配置文件(推荐,最彻底)

注意:如果 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试了似乎只有华为云能用,访问其他镜像站点的更新中心文件都是404)sudotee/opt/jenkins/data/hudson.model.UpdateCenter.xml<<-'EOF' <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://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-i's#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g'/opt/jenkins/data/updates/default.jsonsudosed-i's#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版本和华为云要求的版本相差不大时,推荐手动更新,按以下步骤操作即可:

  1. https://www.jenkins.io/download/下载最新版jenkins.war文件到本地(可能需要魔法)

  2. 先备份已安装版本的jenkins.war文件

mkdir-p/opt/jenkins/backupdockercpjenkins:/usr/share/jenkins/jenkins.war /opt/jenkins/backup/jenkins.war.bak

mkdir -p /opt/jenkins/backup命令用于确保备份目录存在,如果不存在则创建。
docker cp命令的格式为docker cp <容器名称>:<容器内文件路径> <宿主机目标路径>。

  1. 将下载的最新版jenkins.war放到宿主机某个目录,例如/opt/jenkins/,然后复制到容器内替换旧文件:
dockercp/opt/jenkins/jenkins.war jenkins:/usr/share/jenkins/jenkins.war
  1. 启动 Jenkins 容器:
dockerstart jenkins

这样就完成了旧版本jenkins.war的备份以及后续的升级操作。升级完成后,要求版本较高的插件变得可用,若发现新的 Jenkins 版本存在问题,可以将备份的jenkins.war.bak文件再复制回容器内替换当前的jenkins.war文件,以恢复到旧版本状态。

7. 验证 Jenkins 与插件功能

  1. 刷新jenkins页面,完成向导后,创建第一个管理员账户。
  2. 进入Dashboard → Manage Jenkins → Plugins,确认Available标签页能正常加载出插件列表。
  3. 安装初始化时下载失败的插件,观察是否能顺利完成下载和安装。
  4. 进入Installed plugins列表,确认刚安装的插件状态正常,无报错提示。