在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
安装完docker一般就会有docker用户组第二步、将当前用户添加到docker组 sudo gpasswd -a ${USER} docker 第三步、重启docker sudo systemctl restart docker 第四步、授予读写权限 sudo chmod a+rw /var/run/docker.sock 补充:非root用户没有权限使用docker 运行docker run时提示no permissioncentos上安装docker的官方文档 在安装docker-ce的时候已经自动创建了docker用户组,但是需要手动添加用户到docker用户组 $ sudo usermod -aG docker $USER 或者$ sudo usermod -aG docker {指定用户名} 但我在添加用户到docker用户组后还是提示no permission 比如我要运行ubuntu 14.04的bash: [hsowan@localhost shell-workspace]$ docker run -it --rm ubuntu:14.04 bash docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'. why? 原因在于虽然用户加入了docker用户组,但是当前没有切换到docker用户组,所以还是没有权限 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。 $ newgrp docker 现在就可以在非root用户下执行docker相关的命令了 除了给用户添加用户组之外,还有什么办法可以让非root用户可以执行docker相关的命令呢? ok,那我们来查看一下/var/run/docker.sock的权限 $ sudo ll /var/run/docker.sock 会得到下面的结果: srw-rw----. 1 root docker 0 Sep 22 15:29 /var/run/docker.sock 所以现在直接修改/var/run/docker.sock的权限 $ sudo chmod 666 /var/run/docker.sock 现在就可以在非root用户下运行docker了 $ docker run -it --rm ubuntu:14.04 bash root@5c60abab6425:/# cat /etc/os-release NAME="Ubuntu" VERSION="14.04.5 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.5 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" root@5c60abab6425:/# exit exit 以上为个人经验,希望能给大家一个参考,也希望大家多多支持极客世界。如有错误或未考虑完全的地方,望不吝赐教。 |
请发表评论