Jenkins部署:
//下载镜像 docker pull jenkins/jenkins //开放指定的防火墙端口 firewall-cmd --zone=public --add-port=8000/tcp --permanent //创建本地挂载目录 mkdir -p /home/docker/jenkins //需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000 执行如下命令即可: chown -R 1000:1000 /home/docker/jenkins
//运行启动Jenkins
docker run -d -p 8000:8080 -v /home/docker/jenkins:/var/jenkins_home --name jenkins --restart=always jenkins/jenkins
示例:docker run --privileged -id -p 9999:8080 --name=jenkins05 myjenkins:3.0 /usr/sbin/init
docker run -d -p 8000:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --restart always --privileged=true -u root jenkins
查看密码:docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
-p : 映射端口,宿主机端口:容器端口
-v : 挂载,宿主机目录:容器目录
--name : 自定义容器名
-u : 权限用户名
--privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。
/usr/sbin/init >>>后面加 /usr/sbin/init表示给容器授权root权限,使容器能够使用root权限下的命令
给运行中的容器增加root权限:
首先你的container得正在运行。
可通过sudo docker container ls查看容器的CONTAINER ID
sudo docker container ls
最后执行命令(其中848669a8722b为上面查到的CONTAINER ID)
sudo docker exec -ti -u root 848669a8722b bash
查看容器日志
docker logs -f jenkins
查看容器运行
docker ps
之后浏览器输入 http://你的ip地址:8000
进入之后需要输入密码,在命令行使用如下命令获取密码
cat /home/jenkins/secrets/initialAdminPassword 查看密码
之后会进入jenkins安装插件页面,
这里选择安装推荐插件就可以了;
接下来就是进入jenkins首页,这里使用前需要配置一些基础的maven和jdk;
点击进入配置页面:
解释一下我这里为什么是/var/jenkins_home/
因为我首先jenkins是安装在docker里的,这时候使用的就是docker里的路径,
我们上面运行jenkins的时候,看我标红的地方;
这里我的jdk是复制了一份放在/home/jenkins/下面的,所以这里路径就可以直接这么写了;
注意:这里是JAVA_HOME,所以不要加bin目录;
接下来配置maven,跟jdk一样;
至此,基本配置都已经好了。
接下来创建你新项目吧;
对了,默认的推荐插件是没有maven项目的,所以你可以在插件市场里搜索一下maven;
然后去可选插件里搜索:
右上角的搜索框输入:Maven Integration plugin
找到之后直接安装,然后重启jenkins就可以了;
重启jenkins可以直接在浏览器地址栏操作:
http://你的ip地址:8000/restart
这样就OK了;
兄弟 我按照你这个一步步操作的,但是最后启动不成功呢,日志报错提示证书有问题
重启开始会准,过后就不准了
非常好使,解决了问题。垃圾CSDN有个文章写错了大小写“TImeoutStartSec=2sec”,搞得我怀疑人生,md。
大佬 4.1和4.3是不是一个意思
这个第一句 rm -rf /usr/local/bin/ 不合适吧, 把bin下面的所有程序都删除了
后面装其他版本的,就可以了,谢谢,再请教下,生产环境下,存储这块应该要选哪个,看1.25,gluster已经弃用了
系统重新安装后,就可以了,弄了好几天,太感谢了
系统是centos7,有更新,也reset了,还是不行,感觉containerd kubelet 两边的配置对应不上,containerd kubelet 版本有对应关系不,谢谢
containerd 服务正常
但我已经提前安装了啊,它还是显示这个问题
很好。
很6
6666
想下个jdk都要注册登陆也是有烦人心。
感谢
博主,这个containerd.io代表什么
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统