zoukankan      html  css  js  c++  java
  • 免sudo使用docker命令

    背景

    因为使用的是sudo安装docker,所以会导致一个问题。以普通用户登录的状况下,在使用docker images时必须添加sudo,那么如何让docker免sudo依然可用呢?于是开始搜索解决方案。

    理清楚问题

    当以普通用户身份去使用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.26/images/json: dial unix /var/run/docker.sock: connect: permission denied

    可以看都,最后告知我们时权限的问题。那么在linux文件权限有三个数据左右drwxrwxrwx


    image.png
    • 其中第一为d代表该文件是一个文件夹
    • 前三位、中三位、后三位分别代表这属主权限、属组权限、其他人权限。
    • 如图,其中 第三列、第四列分别代表文件的属主、属组。

    image.png

    上图是报错文件的权限展示,可以看到其属主为root,权限为rw,可读可写;其属组为docker,权限为rw,可读可写。如果要当前用户可直接读取该文件,那么我们就为当前用户添加到docker属组即可。

    • 如果还没有 docker group 就添加一个:

      sudo groupadd docker
    • 将用户加入该 group 内。然后退出并重新登录就生效啦。

      sudo gpasswd -a ${USER} docker
    • 重启 docker 服务

      sudo service docker restart
    • 切换当前会话到新 group 或者重启 X 会话

      newgrp - docker

      注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。

  • 相关阅读:
    最大正数pascal程序
    部落卫队pascal解题程序
    使用递归和非递归遍历二叉树
    机器学习 Numpy库入门
    C++ 多态性和虚函数
    C++ 利用栈解决运算问题
    C++ 字符串分割
    C++继承与派生
    机器学习基础
    C++ 输出文件编码控制
  • 原文地址:https://www.cnblogs.com/mafeng/p/8683914.html
Copyright © 2011-2022 走看看