docker环境下的jenkins容器,进入后执行docker命令提示权限不够


    • 在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命令想获得权限发现所有密码都是不对的。

    • 我的Dockerfile文件内容:

    FROM jenkins:alpineUSER rootRUN 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.tgzARG DOCKER_GID=999USER jenkins:${DOCKER_GID}
    • 我的docker run命令:

    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


慕尼黑的夜晚无繁华
浏览 6164回答 2
2回答

弑天下

请问,楼主该问题解决了么,现在使用docker的jenkins镜像也面对同样的一个问题,查了一下资料,是要在docker容器中调用宿主机的docker命令,但这样使用docker确实安全性

饮歌长啸

正常的做法docker images 应该是宿主机执行的。不是在docker容器中执行。就算你做了文件映射, docker容器也不能执行宿主机的程序。docker的目地之一就是隔离出各各运行环境。如果docker容器中可以运行宿主机的程序,docker就会有严重的安全问题。
打开App,查看更多内容
随时随地看视频慕课网APP