1. 当前账号是 willzhao ,直接执行 docker xxx 命令会报以下错误:
willzhao@ideapad:~$ 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.40/images/json: dial unix /var/run/docker.sock: connect: permission denied
  1. 执行sudo docker xxx命令,会提示输入当前账号密码,然后可以成功:
willzhao@ideapad:~$ sudo docker images
[sudo] willzhao 的密码: 
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
bolingcavalry/probedemo   0.0.1               803f83e12d88        3 hours ago         508MB
hello-world               latest              bf756fb1ae65        5 months ago        13.3kB
openjdk                   8u212-jdk-stretch   03b20c1fa768        11 months ago       488MB
  1. 每次执行docker命令都要输入密码不方便,尤其是在shell脚本中就更麻烦了,一起来解决这个问题;
  1. 创建名为docker的组,如果之前已经有该组就会报错,可以忽略这个错误:
sudo groupadd docker
  1. 将当前用户加入组docker:
sudo gpasswd -a ${USER} docker
  1. 重启docker服务(生产环境请慎用):
sudo systemctl restart docker
  1. 添加访问和执行权限:
sudo chmod a+rw /var/run/docker.sock
  1. 操作完毕,验证一下,现在可以不用带sudo了:
willzhao@ideapad:~$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
bolingcavalry/probedemo   0.0.1               803f83e12d88        4 hours ago         508MB
hello-world               latest              bf756fb1ae65        5 months ago        13.3kB
openjdk                   8u212-jdk-stretch   03b20c1fa768        11 months ago       488MB

欢迎访问我的GitHub

欢迎关注我的公众号:程序员欣宸

由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。 如果不想每次使用docker命令的时候还要额外的敲一下sudo,可以按照下面的方法配置一下。 1、创建一个docker组 $ sudo groupadd docker 2、添加当前用户到docker组 $ sudo usermod -aG docker $USER 3、登出,重新登录shell 4、验证docker命令是否可以运行 $ docker run hello-world Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。 对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。而因为使用的是sudo安装docker,所以会导致一个问题。以普通用户登录的状况下,在使用 docker images 时必须添加 sudo ,那么如何让dockersudo 依然可用呢?于是开始搜索解决方案。 理清楚问题 用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量; 用"su -"命令将环境变量也一起带过去,就象和root登录一样。 (2)然后输入以下命令,进..
在之前配置 Ubuntu 系统下使用 Intel 核显 GPU QSV 加速,无论是 vainfo 还是编译后的 ffmpeg 都需要有 root 权限才能调用硬件加速功能。 对于这种情况,要么一直使用 root 用户来执行程序,要么每一次都使用 sudo 来提权。然而,一直使用 root 并不安全。如果每一次都使用 sudo 提权,若需要将 ffmpeg 嵌入到其他程序 (如在python脚本中使用 ffmpeg) ,那么使用 sudo python ... 则会导致 python 脚本中
Linux-ubuntu20.04 dockersudo操作 `注意:操作docker时,必须有root组或docker组的权限,所以很多命令前需要使用sudo,如果要免sudo使用,执行如下命令: #命令一 $ sudo gpasswd -a ${USER} docker #命令二 $ sudo gpasswd -a 用户名 docker #注意:命令一和命令二效果一样,只需要执行一个即可
很多时候我们需要在Linux服务器上跑一些占用内存比较大的程序,在使用Python的时候经常会使用一些开源的package,但是令人头痛的是我们往往并没有服务器上的sudo权限,因此在安装Python的这些开源package的时候会出现各种问题,例如无法安装,或是无权限安装到默认的path中等。 小编也被这个问题困扰了一段时间,现在已经成功解决了这个问题,希望能够帮到正在需要解决这个问题的各位朋友
之前在linux上瞎倒腾了一会终端代理,导致了终端上git出了一点问题,当git前面不加sudo时,会无法进行下载,一直卡在clone.. 如果使用sudo可以顺利下载,但是下载下来的文件访问权限都是root修改起来极为不便,之后编译运行也可能遇到各种各样的问题。 其实,使用sudo能下载原因是因为执行sudo时,系统会重制环境变量,而不会使用代理,也就避开了之前瞎倒腾的弄的一堆代理。 现在...
docker命令sudo,添加docker权限给当前用户 当我们普通用户启用docker时,需要在命令前加sudo 启动,如果想要免sudo命令,只需要把普通用户加入到docker组就行了。 创建docker组:sudo groupadd docker; 将用户添加到docker组:sudo gpasswd -a ${USER} docker 重启docker服务:sudo systemctl restart docker 这样我们就可以在输入docker命令的时候不用加s.
默认没有启用sudo,首先应该是对sudo进行设置sudo的作用就是使当前root用户在使用没有权限的命令 时,直接命令前加入sudo,在输入自己当前用户的密码就可以完成root用户的功能,而不必在每次使用su -来回切换用户了。 sudo的配置文件位于/etc/sudoers,需要root权限才可以读写。 找到root ALL=(ALL) ALL这一行,在后面再加上一行就可以了: username ALL=(ALL) ALL 其中username为指定的使用sudo的用户,中间的空格为tab 一旦使用 sudo 来 apt install 软件,就会有复杂的权限问题! 我们安装软件时,在 shell 里边直接使用 apt 来管理软件,不要加 sudo 了! 能不加 sudo 的时候,就不要加 sudo 。以免画蛇添足! apt install openjdk-15-jdk openjdk-15-source apt install ant maven gradle
Ubuntu系统的/etc/sudoers里面会默认有“%sudo ALL=(ALL:ALL)”这个字段,意思为sudo组下的所有用户都能使用sudo权限,前提需要执行用户本身的密码,那如果不想输入执行者的密码也获取sudo权限怎么办呢?那就是配置免密sudo。常用的两种方法: sed -i '/%sudo/c %sudo ALL=(ALL:ALL) NOPASSWD:ALL' /e.........
### 回答1: 这个错误提示意味着您在使用sudo命令时,系统找不到docker命令。这可能是因为您没有安装docker或者docker没有被正确配置。您可以尝试重新安装docker并确保它被正确配置。如果问题仍然存在,您可以尝试使用绝对路径来运行docker命令,例如:/usr/bin/docker。 ### 回答2: 问题出现的原因可能是因为在您的系统上没有正确安装 Docker,或者您的 Docker 环境变量没有正确设置。这时,您可能会看到类似“sudo: docker: command not found”这样的错误信息。 如果您确定已经在系统上安装了 Docker,那么可能是 Docker 环境变量不正确设置所导致的。您可以通过运行以下命令来检查 Docker 是否在环境变量 PATH 中被设置: echo $PATH 如果看到输出中没有包含 Docker 路径,那么您可以尝试通过编辑 shell 的配置文件来将 Docker 路径添加到 PATH 中。例如,对于 bash shell,您可以编辑 ~/.bashrc 文件,并在其中添加以下命令: export PATH="/usr/local/bin:/usr/local/sbin:$PATH" 注意,Docker 路径可能因安装位置而异。您可以通过在终端窗口中运行以下命令来检查 Docker 的安装位置: which docker 如果以上解决方法都无法解决问题,您可以尝试重新安装 Docker,或者通过 Docker 官方网站上的文档了解更多问题解决方案。 ### 回答3: 这个错误信息提示是在使用sudo命令时,执行docker指令时发现docker命令不存在。在Linux系统中,sudo命令是用来获取管理员权限执行命令。而docker命令是用来管理Docker容器的。因此,sudo: docker: 找不到命令的原因可能是以下几个方面: 1. Docker 没有正确安装。在执行docker命令时,系统会在PATH环境变量中查找docker命令的位置。如果不存在,则会提示找不到命令。因此,需要检查Docker是否已经正确安装,并且安装在PATH环境变量中包含的所有目录中。可以通过运行“docker version”命令来检查Docker是否已经正确安装。 2. 当前用户没有执行docker的权限。在Linux系统中,需要以root用户或者sudo权限执行docker命令。如果当前用户没有执行docker的权限,则会提示找不到命令。因此,需要检查当前用户是否有执行docker命令的权限,并且是否以sudo权限执行docker命令。 3. PATH环境变量配置不正确。在执行docker命令时,系统会在PATH环境变量中查找docker命令的位置。如果PATH环境变量配置不正确,则会提示找不到命令。因此,需要检查PATH环境变量中是否包含了包含docker命令的目录。 4. Docker服务没有启动。如果Docker服务没有启动,则会提示找不到命令。因此,需要检查Docker服务是否已经启动,并且没有出现其他错误信息。 总体来说,sudo: docker: 找不到命令的错误提示是比较常见的问题,需要仔细检查和排查。针对以上几个方面进行逐一排查,就可以找到具体的问题所在,并进行解决。