博客博客
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name

docker安装jenkins

运行容器

执行以下命令

# 搜索Jenkins
docker search jenkins

# jenkins镜像为官方镜像,docker hub中提到已经弃用[deprecated],推荐使用jenkins/jenkins
docker pull jenkins/jenkins[:latest]
docker run -d -u root --name=jenkins \
    --restart=always \
    -p 8080:8080 -p 50000:50000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(which docker):/usr/bin/docker \
    -v $(which docker-compose):/usr/bin/docker-compose \
    -v /srv/jenkins/opt:/var/jenkins_home \
    jenkins/jenkins
  • -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker 将jenkins容器内的docker命令指向了宿主机,结合-u root在容器中才有权限执行docker命令
  • -v $(which docker-compose):/usr/bin/docker-compose \ 容器内的docker-compose命令指向宿主机
  • -v /srv/jenkins/opt:/var/jenkins_home 将docker里jenkins工作目录/var/jenkins_home挂载到宿主机的/srv/jenkins/var/jenkins_home

    -v jenkins:/var/jenkins_home 将docker里jenkins工作目录/var/jenkins_home挂载到本地容器卷/var/lib/docker/volumes下面的jenkins目录

此时如果访问8080端口是访问不了的,我们查看日志可以看到一段代码

cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

大概意思就是没有权限访问映射工作目录,因为jenkins容器中jenkins用户id为1000,而本地用户权限为root,所以把当前目录的拥有者赋值给uid 1000,再启动"jenkins"容器就一切正常了

chown -R 1000 /srv/jenkins/opt

初始密码

首次打开Jenkins页面后需要输入初始密码,默认账号为admin

可以通过日志查看

docker logs jenkins

如果日志太多不方便查找,也可以在/var/jenkins_home/secrets/initialAdminPassword文件中查看

由于我们做了工作目录映射,所以直接在宿主机中可以找到该文件

登录后可以新建一个用户,也可以默认使用当前admin账户,可以安装所有推荐的插件

相关链接

  • 安装Jenkins
  • jenkins 容器环境中调用docker
  • Docker中启动jenkins容器,并在jenkins中使用docker 命令,解决docker command not found
  • Docker-in-Docker: Jenkins CI 内部如何运行 docker
  • Using Docker-in-Docker for your CI or testing environment? Think twice.
Prev
docker安装gitlab
Next
docker安装kafka