• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 exec执行多个命令的操作
    下一篇:Shell脚本构建Docker 半自动化编译打包发布应用操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Docker命令让普通用户能够执行的实现 Docker,命令,让,普通,用户,