Jenkins容器内部无法使用docker命令
1、启动容器,将宿主机的/var/run/docker.sock隐射到容器/var/run/docker.sockjenkins:image: 'jenkins/jenkins:lts'restart: alwaysports:- "8080:8080"dns:- 192.168.1.36expose:- "8080"- "50000"privileged: truecontainer_name:
·
1、启动容器,将宿主机的/var/run/docker.sock隐射到容器/var/run/docker.sock
jenkins:
image: 'jenkins/jenkins:lts'
restart: always
ports:
- "8080:8080"
dns:
- 192.168.1.36
expose:
- "8080"
- "50000"
privileged: true
container_name: jenkins
environment:
- TZ=Asia/Shanghai
volumes:
- ./jenkins_home/:/var/jenkins_home
- ./jenkinswar/jenkins.war:/usr/share/jenkins/jenkins.war
- /var/run/docker.sock:/var/run/docker.sock
2、将docker命令映射到容器,或者直接拷贝docker到数据目录下,执行后还是会报错,如下
3、解决方案:明显就是无权限,socket文件一般只有root或者具有sudo权限的用户有访问权限,如果不想使用sudo就要创建一个docker组,这个组中的用户也可以访问。这里我们先查看容器内部权限:
接着就给socket授权
[root@k8s-jenkins jenkins]# chown .1000 /var/run/docker.sock
[root@k8s-jenkins jenkins]# ll /var/run/docker.sock
srw-rw----. 1 root 1000 0 Apr 24 16:42 /var/run/docker.sock
4、最后验证
[root@k8s-jenkins jenkins]# docker exec -it jenkins /bin/bash
jenkins@a8124ac41f55:/$ /var/jenkins_home/tools/docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a8124ac41f55 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp jenkins
更多推荐
已为社区贡献11条内容
所有评论(0)