docker 搭建jenkins, 宿主机挂载路径uid,gid均正确却还报Permission denied,请考虑是否是selinux缘故

1)创建jenkins容器:

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins

(note:docker中jenkins的uid,gid默认都是1000,因此宿主机的路径必须也要设置成相同的权限)


2)检查容器状态:

docker ps -a


3)如果还是exit(1),docker logs <container id>提示permission denied的情况,请检查宿主机是否开启selinux:

宿主机切换jenkins用户,id命令查看到:

bash-4.2$ id
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

而docker环境下id命令结果没有上面标红:

[root@localhost jenkins_home]# docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "id"
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)


宿主机下执行/usr/sbin/sestatus -v命令查看selinux状态:

[root@localhost jenkins_home]# /usr/sbin/sestatus -v
SELinux status:                 enabled

那么就可以判定selinux是打开的


4)那么处理方法有两种:

a.关闭selinux(网上搜一搜方法)

b.不关闭selinux的情况下,修改宿主机jenkins挂载目录的权限:

在宿主机执行ls -Z可以查看selinux信息,

[root@localhost jenkins_home]# ls -Za
drwxr-xr-x. jenkins jenkins system_u:object_r:var_t:s0       .
drwxr-xr-x. root    root    system_u:object_r:var_t:s0       ..

那么同样在docker环境下查看selinux信息,

[root@localhost jenkins_home]# docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "cd /var/jenkins_home;ls -Zal"
total 20
drwxr-xr-x.  2 jenkins jenkins system_u:object_r:svirt_sandbox_file_t:s0           4096 Dec  8 07:57 .
drwxr-xr-x. 12 root    root    system_u:object_r:svirt_sandbox_file_t:s0:c365,c598 4096 Nov  8 21:55 ..

比较第三列确有差异。


接下来手动修改/var/jenkins_home目录的selinux权限即可:

[root@localhost jenkins_home]# chcon -R -t svirt_sandbox_file_t .
[root@localhost jenkins_home]# ls -aZl
total 84
drwxr-xr-x. 13 system_u:object_r:svirt_sandbox_file_t:s0 jenkins jenkins 4096 Dec  8 15:21 .
drwxr-xr-x. 21 system_u:object_r:var_t:s0       root    root    4096 Dec  7 14:28 ..


5)重启jenkins

docker restart <container id>

或者删除旧的容器,新建:

docker rm <container id>

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值