docker启动jenkins,jenkins中调用docker

在jenkins中执行docker

思路

  1. jenkins中安装docker客户端,使用第三方的docker(需要付费)。
  2. jenkins中安装docker客户端,另一个容器中安装docker服务, docker-in-docker,需要特权模式,或者第三方的工具。
  3. jenkins中什么都不装,直接使用宿主机的docker服务

实现第三种

优点:简单,方便,直观

缺点:jenkins可以全权的管理所有的容器(包括jenkins自己),有隐含安全风险

docker凭什么来运行?

docker-cli

which docker查看

/usr/bin/docker

docker.scok

ls /var/run/docker.sock

docker-server

docker拉取镜像

复制代码
docker pull jenkins/jenkins:jdk11

运行jenkins容器

复制代码
docker run -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /root/myjenkins/jenkins_home/:/var/jenkins_home -u root -d  --name jenkins -p 8120:8080 jenkins/jenkins:jdk11

这条命令用来运行一个 Jenkins 容器,它映射了所需的文件和目录,并设置了一些重要的参数。我们逐一解析:

  1. docker run: 启动一个新的容器的命令。

  2. -v /usr/bin/docker:/usr/bin/docker: 将主机上的 Docker 可执行文件 (/usr/bin/docker) 映射到容器内的相同路径。这使得容器内的 Jenkins 可以使用 Docker 命令。

  3. -v /var/run/docker.sock:/var/run/docker.sock: 将主机上的 Docker socket 映射到容器内,以便容器内的 Jenkins 可以与主机上的 Docker 守护进程通信。这通常用来启用 Jenkins 在容器内管理其他 Docker 容器的功能。

  4. -v /root/myjenkins/jenkins_home/:/var/jenkins_home: 将主机上的 Jenkins 数据目录 /root/myjenkins/jenkins_home/ 映射到容器内的 /var/jenkins_home。这样可以持久化 Jenkins 数据,即使容器被删除,数据仍然保留。

  5. -u root: 指定以 root 用户的身份运行容器。这是为了确保容器内的进程拥有足够的权限运行和管理文件。

  6. -d: 表示容器以后台方式运行(detached mode)。

  7. --name jenkins: 为这个容器指定一个名字,叫 jenkins,方便管理。

  8. -p 8120:8080: 映射端口。将主机的 8120 端口映射到容器的 8080 端口,这样主机可以通过 http://localhost:8120 访问 Jenkins 的 Web UI。

  9. jenkins/jenkins:jdk11: 指定使用的镜像为 jenkins/jenkins:jdk11,即包含 JDK 11 的 Jenkins 镜像。

访问jenkins

创建管理员用户

安装完成之后在游览器上访问 localhost:portport 是安装时设置的端口号,比如:localhost:8120

注意:不同版本的 jenkins 页面可能会有点差异

根据提示的路径就能找到存放 管理员密码 的文件 initialAdminPassword

进入容器查看
复制代码
docker exec -it jenkins bash

创建执行尝试

创建项目

执行

查看日志

相关推荐
hhua01233 分钟前
理解“无界队列”与“有界队列”及其适用场景
java·队列
LZQqqqqo7 分钟前
C# 接口(interface 定义接口的关键字)
java·开发语言·c#
寒水馨14 分钟前
Java 9 新特性解析
java·开发语言·新特性·java9·jdk9
SimonKing20 分钟前
甩掉手动赋值!MyBatis-Plus 自动填充实战秘籍
java·后端·程序员
东风微鸣31 分钟前
AI 赋能的故障排除:技术趋势与实践
docker·云原生·kubernetes·可观察性
都叫我大帅哥1 小时前
Java PriorityQueue:小顶堆大智慧,优先队列全揭秘
java
都叫我大帅哥1 小时前
TOGAF实施治理阶段:你的项目守护神,还是架构警察?
java
吹个口哨写代码1 小时前
防止包含 XSS 攻击风险的内容提交成功
java·服务器·前端
hrrrrb1 小时前
【Spring Boot 快速入门】一、入门
java·spring boot·后端
超级小忍3 小时前
Spring Boot 配置文件常用配置属性详解(application.properties / application.yml)
java·spring boot·后端