当前位置: 首页 > news >正文

Jenkins 使用宿主机的Docker

背景:不想在Jenkins 内部安装Docker,想直接使用Jenkins服务所在的系统安装的docker

当你在 Jenkins 中执行 docker 命令时,实际上是通过 Docker 客户端与 Docker 守护进程进行通信。Docker 客户端和守护进程之间的通信是通过一个名为 /var/run/docker.sock 的 Unix socket 进行的。默认情况下,只有 root 用户和属于 docker 组的用户才有权限访问这个 socket 文件。

当 Jenkins 尝试运行 docker build 或其他 docker 命令时,它需要通过 /var/run/docker.sock 与 Docker 守护进程交互。如果 Jenkins 运行的用户(通常是 jenkins)没有足够的权限访问这个 socket 文件,就会出现类似下面的错误

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

cd /var/run/
ls -l# 只有 root 和 docker 组的成员可以访问/var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock# jenkins 用户添加到 docker 组
sudo usermod -aG docker jenkins# 期望输出:jenkins : jenkins docker
groups jenkins

# 检查 Jenkins 用户的 Shell 设置 非交互式(bin/false)
grep jenkins /etc/passwd# 将Jenkins 用户的 shell 修改为 /bin/bash 或其他合适的交互式 shell
sudo usermod -s /bin/bash jenkins# 检查
grep jenkins /etc/passwd

#将 Jenkins 用户添加到 Docker 组
sudo usermod -aG docker jenkinssudo su - jenkins# 期望输出 jenkins  如果不生效,尝试重启系统  reboot
whoami# 尝试jenkins能否使用外部docker
docker ps

目前你看到的 -bash-4.2$ 是因为 Jenkins 用户主目录中没有 .bashrc.bash_profile 等配置文件。你可以通过以下命令来修复这个问题:

exitcp /etc/skel/.bash* /var/lib/jenkins/
chown -R jenkins:jenkins /var/lib/jenkins/.bash*# 检查
sudo su - jenkins

 

http://www.dtcms.com/a/269455.html

相关文章:

  • 深入解析 structuredClone API:现代JS深拷贝的终极方案
  • Ubuntu 版本号与别名对照表(部分精选)
  • Java使用接口AES进行加密+微信小程序接收解密
  • Linux Ubuntu系统下载
  • Docker企业级应用:从入门到生产环境最佳实践
  • any实现(基于LLVM中libcxx实现分析)
  • 深入理解Java虚拟机(JVM):从内存管理到性能优化
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(1)搭建框架基本雏形
  • C++11标准库算法:深入理解std::find, std::find_if与std::find_if_not
  • iOS Widget 开发-3:Widget 的种类与尺寸(主屏、锁屏、灵动岛)
  • el-button传入icon用法可能会出现的问题
  • Unity开发如何解决iOS闪退问题
  • 数据分析-59-SPC统计过程控制XR图和XS图和IMR图和CPK分析图
  • 手机解压软件 7z:高效便捷的解压缩利器
  • 【机器学习笔记 Ⅲ】5 强化学习
  • C++异步编程入门
  • JVM 基础 - 类字节码详解
  • 编码器(Encoder)和解码器(Decoder)
  • 你好,你的小程序实际运营内容与名称简介不符,请上架符合小程序名称简介描述的正式内容/商品,或修改名称简介并保持服务内容与图文一致。
  • 【Linux】Redis 6.2.6 的二进制部署【适用于多版本】
  • Java 导出pdf 写出demo 1、需要设置自定义页眉和文字 2、可以插入表格 3、可以插入图片
  • MSPM0G3519-PA23 引脚无法使用
  • 小米YU7预售现象深度解析:智能电动汽车的下一个范式革命
  • Vue、Laravel 项目初始化命令对比 / curl 命令/ CORS 机制总结与案例
  • react的条件渲染【简约风5min】
  • Rust 仿射类型(Affine Types)
  • 在 Vue2 与 Vue3 中,面对 **大数据量交互体验优化** 和 **ECharts 大数据渲染性能优化**
  • 文风写作模仿各种公文范文快速生成初稿
  • MySQL字符串函数全解析
  • 设计模式笔记_创建型_建造者模式