①:拉取最新镜像
docker pull jenkins/jenkins
②:创建挂载目录
# 创建宿主机的挂载目录
mkdir /data/jenkins/jenkins_data:
③:运行容器
docker run -d -p 18080:8080 -p 50000:50000 \
-v /data/jenkins/jenkins_data:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=on-failure \
-u 0 \
--name jenkins \
jenkins/jenkins
命令解释
docker run
: 运行一个新的容器。-d
: 后台运行容器 (detached mode)。-p 18080:8080
: 将宿主机的 18080 端口映射到容器的 8080 端口,这是 Jenkins 的 Web 界面默认端口。-p 50000:50000
: 将宿主机的 50000 端口映射到容器的 50000 端口,这是 Jenkins 用于与代理通信的端口。-v /data/jenkins/jenkins_data:/var/jenkins_home
: 将宿主机的 /data/jenkins/jenkins_data 目录挂载到容器的 /var/jenkins_home 目录,这是 Jenkins 的主目录,用于存储 Jenkins 配置、构建作业和插件等数据。-v /etc/localtime:/etc/localtime
: 将宿主机的 /etc/localtime 文件挂载到容器的 /etc/localtime,确保容器内的时间与宿主机同步。-v /usr/bin/docker:/usr/bin/docker:
将宿主机的 Docker 二进制文件挂载到容器的 /usr/bin/docker,使容器内能够使用 Docker 命令。-v /var/run/docker.sock:/var/run/docker.sock
: 将宿主机的 Docker 进程套接字挂载到容器的 /var/run/docker.sock,使容器内的 Docker 客户端能够与宿主机的 Docker 守护进程通信。这对于 Jenkins 在容器内执行 Docker 命令是必要的。--restart=on-failure
: 配置容器在出现错误退出时自动重启。仅在容器以非零退出状态终止时才重启。-u 0
: 以 root 用户(UID 0)身份运行容器。这通常是为了确保容器内的 Jenkins 有足够的权限执行需要的操作。--name jenkins
: 为容器指定一个名称 jenkins,方便管理和引用该容器。jenkins/jenkins
: 使用 Jenkins 官方的 Docker 镜像。这是从 Docker Hub 拉取的 jenkins/jenkins 镜像的默认最新版本。
启动成功如下
④:登录jenkins客户端
启动容器命令中,-p 18080:8080
: 将宿主机的 18080 端口映射到容器的 8080 端口,所以 Jenkins 的 Web 界面端口映射结果为18080
访问http://ip:18080
进入登陆页面
用户名为admin
密码为:
# 进入宿主机保存密码的文件
ca /data/jenkins/jenkins_data/secrets
# 查看密码
cat ./initialAdminPassword
密码为 0b9fda396c1c49a2b5070e25071ac863
登陆即可
④:常见问题(证书问题)
如果想要装插件时,点击Manager Plugins 打开有很多红色报错
,那就可能是证书问题
解决方案:更新证书
# 1.进入jenkins容器中
docker exec -it jenkin ./bin/bash
# 2. 更新jenkins证书
apt-get update
apt-get install --reinstall ca-certificates
# 3. 重启jenkins
docker restart jenkins
apt-get update
- 这个命令用于更新包管理器的包索引。它会从配置的源(通常是在 /etc/apt/sources.list 文件中定义的)下载最新的包列表和版本信息。这样,包管理器就能知道可以安装的最新包和更新。
- 此命令不会实际安装或更新任何包,只是更新包列表,以便接下来的安装或升级操作能获取到最新的包信息。
apt-get install --reinstall ca-certificates
- 这个命令用于重新安装 ca-certificates 包。ca-certificates 包包含系统信任的根证书,用于验证 SSL/TLS 连接中的服务器证书。重新安装这个包可以确保系统上的 CA 证书是最新的,避免由于过期或丢失的证书引起的 SSL/TLS 验证问题。
为什么要执行这两个命令?
- 在你遇到 Jenkins 证书验证问题的情况下,重新安装 CA 证书包可以确保系统上的 CA 证书是最新的,从而解决可能因过期或不正确的证书引起的问题。更新包索引则确保你能够安装或更新到最新版本的包,包括 CA 证书包。