docker pull jenkinsci/blueocean:从 Docker Hub 拉取 jenkinsci/blueocean 镜像。blueocean 是 Jenkins 的一个插件,提供了现代化的用户界面
-
**
-u root**:- 以
root用户身份运行容器。 - 这样 Jenkins 容器内的进程具有最高权限,可以执行需要 root 权限的操作(如管理 Docker 容器)。
- 以
-
**
-d**:- 以后台模式(detached mode)运行容器。
- 容器会在后台运行,终端不会阻塞。
-
**
-p 8087:8080**:- 将容器的
8080端口映射到宿主机的8087端口。 - 这样可以通过
http://<宿主机IP>:8087访问 Jenkins Web 界面。
- 将容器的
-
**
-p 50000:50000**:- 将容器的
50000端口映射到宿主机的50000端口。 - 这个端口用于 Jenkins 代理(agent)与 Jenkins 主节点(master)之间的通信。
- 将容器的
-
**
-v jenkins-data:/var/jenkins_home**:- 将宿主机上的
jenkins-data目录(或 Docker 卷)挂载到容器内的/var/jenkins_home目录。 /var/jenkins_home是 Jenkins 的主目录,包含 Jenkins 的配置、作业、插件等数据。- 通过挂载,可以持久化 Jenkins 数据,即使容器被删除或重启,数据也不会丢失。
- 将宿主机上的
-
**
-v /var/run/docker.sock:/var/run/docker.sock**:- 将宿主机的 Docker 套接字(
/var/run/docker.sock)挂载到容器内的相同路径。 - Docker 套接字是 Docker 守护进程与客户端通信的接口。
- 通过挂载,Jenkins 容器可以与宿主机的 Docker 守护进程通信,从而管理宿主机上的 Docker 容器(如构建镜像、启动容器等)。
- 将宿主机的 Docker 套接字(
-
**
-v /usr/bin/docker:/usr/bin/docker**:- 将宿主机的 Docker 可执行文件(
/usr/bin/docker)挂载到容器内的相同路径。 - 这样 Jenkins 容器内可以直接调用宿主机的 Docker 命令(如
docker build、docker run等)。 - 如果没有挂载,Jenkins 容器内可能无法找到 Docker 可执行文件,导致 Docker 命令无法执行。
- 将宿主机的 Docker 可执行文件(
-
**
jenkinsci/blueocean**:- 使用的 Docker 镜像名称。
jenkinsci/blueocean是官方提供的 Jenkins 镜像,内置了 Blue Ocean 插件,提供了更现代化的用户界面和流水线可视化功能。
docker pull jenkinsci/blueocean
docker run -u root -d -p 8087:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkinsci/blueocean
如果Jenkins安装插件时出现以下错误,需要加一行命令跳过校验签名:
There were errors checking the update sites: Signature verification failed in update site 'default' <a href='#' class='showDetails'>(show details)</a><pre
docker run -u root -d -p 8087:8080 -p 50000:50000 -e JAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true" -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkinsci/blueocean
Jenkins插件Updates URL国内镜像源:
https://mirrors.huaweicloud.com/jenkins/updates/update-center.json
虽然 update-center.json配置正确,已经修改配置为国内镜像源:,但插件下载时可能仍然尝试访问 updates.jenkins.io,报错如下:
java.net.unknownhostexception: updates.jenkins.io
如果jenkins是用容器化部署的:
# 进入您的Jenkins容器
docker exec -it <您的容器名称> bash
# 进入updates目录
cd /var/jenkins_home/updates/
# 执行替换命令(推荐使用此命令,它针对插件下载URL)
sed -i 's#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g' default.json
# 同时替换连接检查URL(将Google替换为Bing,这是一个常见做法以确保连通性检查成功)
sed -i 's#http://www.google.com#https://www.bing.com#g' default.json
不是容器化部署的,找到
/var/lib/jenkins/updates/default.json
然后直接执行批量替换命令即可
1846

被折叠的 条评论
为什么被折叠?



