当前位置: 首页 > 编程笔记 >

如何免sudo使用docker命令详解

蒯慈
2023-03-14
本文向大家介绍如何免sudo使用docker命令详解,包括了如何免sudo使用docker命令详解的使用技巧和注意事项,需要的朋友参考一下

背景

Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。

对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。而因为使用的是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 ,

其中第一为 d 代表该文件是一个文件夹

前三位、中三位、后三位分别代表这属主权限、属组权限、其他人权限。

如图,其中 第三列、第四列分别代表文件的属主、属组。

上图是报错文件的权限展示,可以看到其属主为 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 执行时同样有错。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍使用docker命令不需要敲sudo的操作,包括了使用docker命令不需要敲sudo的操作的使用技巧和注意事项,需要的朋友参考一下 由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。 如果不想每次使用docker命令的时候还要额外的敲一下

  • 问题内容: 我的主文件夹中有一个脚本。 当我导航到该文件夹​​并输入时,我得到 。 当我使用时,我得到 。 为什么会发生这种情况,我该如何解决? 问题答案: 没有权限 为了运行脚本,文件必须 设置可执行权限 。 为了完全理解Linux 文件权限,您可以学习命令的文档。chmod是 change mode 的缩写,是用于更改文件的权限设置的命令。 要阅读本地系统的chmod文档,请运行或从命令行运行

  • 我有一个脚本叫做在我的主文件夹中。 当我导航到这个文件夹,并输入,我得到 . 当我使用时,我得到 。 为什么会发生这种情况,我如何解决它?

  • 本文向大家介绍Docker 网络命令详解,包括了Docker 网络命令详解的使用技巧和注意事项,需要的朋友参考一下 •docker network create •docker network connect •docker network ls •docker network rm •docker network disconnect •docker network inspect 创建网络 •

  • 问题内容: 通常,docker容器使用 root 用户运行。我想使用其他用户,使用docker的USER指令没问题。但是该用户应该能够在容器内使用 sudo 。该命令丢失。 这是用于此目的的简单Dockerfile: 运行此容器,我以用户’docker’登录。当我尝试使用sudo时,找不到命令。所以我尝试使用以下方法在Dockerfile中安装 sudo 软件包 这导致 无法找到包sudo 问题答

  • 通常,docker容器使用用户root运行。我想使用一个不同的用户,这是没有问题的使用Docker的用户指令。但该用户应该能够在容器内使用sudo。缺少此命令。 下面是一个用于此目的的简单Dockerfile: 运行这个容器时,我使用用户'docker'登录。当我尝试使用sudo时,找不到该命令。所以我尝试在我的Dockerfile中安装sudo包,使用 这将导致无法定位包sudo