- 在docker下拉取jenkins镜像后,build 并 run 之后通过
docker exec it [containerID] /bin/bash
命令进入镜像后,再执行docker images
命令提示权限不够:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.29/images/json: dial unix /var/run/docker.sock: connect: permission denied
。此时执行su
命令想获得权限发现所有密码都是不对的。
FROM jenkins:alpine
USER root
RUN curl -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz \
&& tar zxvf docker-latest.tgz \
&& cp docker/docker /usr/local/bin/ \
&& rm -rf docker docker-latest.tgz
ARG DOCKER_GID=999
USER jenkins:${DOCKER_GID}
docker run -p 49002:8080 --name jenkins_docker -d -v /Users/UserName/jenkins_docker:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins_docker
正常的做法docker images 应该是宿主机执行的。不是在docker容器中执行。
就算你做了文件映射, docker容器也不能执行宿主机的程序。
docker的目地之一就是隔离出各各运行环境。
如果docker容器中可以运行宿主机的程序,docker就会有严重的安全问题。