docker安装jenkins

①:拉取最新镜像

 

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 证书包。

相关推荐

  1. docker 安装jenkins

    2024-06-09 04:48:02       42 阅读
  2. 安装 dockerjenkins

    2024-06-09 04:48:02       34 阅读
  3. docker 安装 jenkins

    2024-06-09 04:48:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 04:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 04:48:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 04:48:02       82 阅读
  4. Python语言-面向对象

    2024-06-09 04:48:02       91 阅读

热门阅读

  1. 啥是多边央行数字货币桥项目(个人技术理解)

    2024-06-09 04:48:02       23 阅读
  2. Python自学(适用于略有基础)

    2024-06-09 04:48:02       23 阅读
  3. 各种源码文件的扩展名

    2024-06-09 04:48:02       22 阅读
  4. C语言——函数指针

    2024-06-09 04:48:02       35 阅读
  5. Android ViewPager和ViewPager2的区别

    2024-06-09 04:48:02       24 阅读
  6. 使用vue3+ts封装一个Slider滑块组件

    2024-06-09 04:48:02       24 阅读
  7. 标题:CSRFTester:自动化探测 CSRF 漏洞的利器

    2024-06-09 04:48:02       29 阅读
  8. 开发服务器——webpack-dev-server

    2024-06-09 04:48:02       25 阅读
  9. MySQL8sql_model的问题

    2024-06-09 04:48:02       29 阅读