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 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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Docker安装、创建镜像、加载并运行NodeJS程序的详细过程
本文给大家介绍Docker安装、创建镜像、加载并运行NodeJS程序的相关知识,通过示例给大家详细介绍创建一个nodejs程序的docker镜像的方法,需要的朋友跟随小编一起看看吧2021-06-06docker-compose镜像发布springboot项目的流程分析
Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理,接下来通过本文给大家介绍docker-compose发布springboot项目的流程分析,一起看看吧2021-06-06Docker部署nginx+php环境的全过程(简单可用!)
最近在学docker,顺便配置了一下docker中的nginx与php,发现网上的关于docker中配置nginx与php的资料很少,而且有的也很旧,没有太多的参考性,下面这篇文章主要给大家介绍了关于Docker部署nginx+php环境的相关资料,需要的朋友可以参考下2023-02-02docker image tag为什么出现none的原因及解决
当我们使用docker加载新的镜像时,有时候会发现Repository和Tag名称都为none的情况,这通常是由于没有指定正确的标签名称或者仓库名称所导致的,本文主要介绍了docker image tag为什么出现none的原因及解决,感兴趣的可以了解一下2023-10-10
最新评论