Docker命令让普通用户能够执行的实现示例
这篇文章给大家分享的是有关Docker命令让普通用户能够执行的实现示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
安装完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 permission
centos上安装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 bashdocker: 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 bashroot@5c60abab6425:/# cat /etc/os-release NAME="Ubuntu"VERSION="14.04.5 LTS, Trusty Tahr"ID=ubuntuID_LIKE=debianPRETTY_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:/# exitexit
感谢各位的阅读!关于“Docker命令让普通用户能够执行的实现示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341