Jenkins 使用 Docker

简介: Jenkins 使用 Docker

Jenkins 中使用 Docker 会有权限问题,因为 docker 进程使用 Unix Socket 而不是 TCP 端口。而默认情况下, Unix socket 属于 root 用户,需要 root 权限才能访问。这样的话 我们就需要用 root 去运行 docker


同时, Jenkins 可能是通过 Docker 安装的,也可能是本地直接安装的。


通过 Docker 安装

现有两种方式解决:


方法一:暴力更改权限

在本机执行如下命令:

$ sudo chmod -R 777 /var/run/docker.sock点击复制复制失败已复制

接下来就能正常运行了,但这个风险太大了!


方法二:魔改 Jenkins Docker镜像

官方提供的 Docker 镜像里面不能用 sudo 命令,那我们基于官方镜像魔改一下,将 sudo 加入进去就可以了。


新建 Dockerfile 文件,写入如下内容

FROM jenkins/jenkins:lts
USER root
RUN apt-get update \
    && apt-get install -y sudo \
    && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins点击复制复制失败已复制


很简单,就是先切换到 root 用户,安装一下 sudo 这个软件包,之后将 jenkins 用户 赋予sudo权限 ,然后再切换回 jenkins 用户。这样的魔改镜像对比官方镜像就是多了一个 sudo 功能,其他丝毫没动。


这个虽然比暴力更改权限好,但是也没有好很多,同样是将权限开放了,只不过一个是开放了文件的权限,一个是开放了应用的权限。


本地安装

本地安装时,最好的方法就是将 jenkins 加入到 docker 用户组

$ sudo usermod -a -G docker jenkins     # 将用户加入用户组
$ sudo service jenkins restart     # 重启
目录
相关文章
|
5月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
3月前
|
监控 jenkins 持续交付
Docker和Jenkins有什么不同
【10月更文挑战第18天】Docker和Jenkins有什么不同
|
3月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
144 1
|
3月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
3月前
|
jenkins Java 持续交付
Docker搭建jenkins环境
这篇文章详细介绍了如何利用Docker搭建Jenkins环境,包括拉取Jenkins镜像、配置端口映射及初始化设置的步骤。
227 0
Docker搭建jenkins环境
|
3月前
|
Ubuntu jenkins 持续交付
Ubuntu系统 用docker安装jenkins
Ubuntu系统 用docker安装jenkins
|
5月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
5月前
|
jenkins Shell 持续交付
自动化部署:使用Jenkins和Docker实现CI/CD
【8月更文挑战第31天】 本文旨在引导读者了解如何通过Jenkins和Docker来实现持续集成和持续部署(CI/CD),从而优化开发流程,提升工作效率。文章将详细介绍配置Jenkins服务器、创建Docker镜像以及设置自动化构建和部署的步骤。通过实际操作案例,我们将展示如何将代码变更快速部署到测试或生产环境,确保软件质量与发布速度的双重保障。
|
5月前
|
jenkins 持续交付 开发工具
Jenkins 与 Docker 集成的最佳实践
【8月更文第31天】随着容器技术的兴起,越来越多的团队开始采用 Docker 来构建和部署应用。Docker 提供了一种轻量级的虚拟化方法,使得应用可以在任何地方以相同的方式运行,这极大地提高了开发效率和部署的一致性。与此同时,Jenkins 作为一种广泛使用的持续集成/持续交付(CI/CD)工具,可以帮助团队自动化构建、测试和部署流程。本文将探讨如何将 Docker 与 Jenkins 集成,以简化开发环境的搭建和维护。
403 0
|
5月前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline