如何在没有sudo的情况下在ubuntu上运行docker
我想通过运行以下命令来运行docker:如何在没有sudo的情况下在ubuntu上运行docker,docker,ubuntu,Docker,Ubuntu,我想通过运行以下命令来运行docker: docker build -t getting-started . 我得到以下错误: 尝试连接到处的Docker守护程序套接字时,权限被拒绝unix:///var/run/docker.sock: 邮递http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D和cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcus=
docker build -t getting-started .
我得到以下错误:
尝试连接到处的Docker守护程序套接字时,权限被拒绝unix:///var/run/docker.sock: 邮递http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D和cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcus=&cpusetcus=&cpusetmems=&cpushares=0&dockerfile=dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=0&t=getting start&target=&ulimits=null&version=1:dial:unix/var/run/dockers/dockers=0否认
我的问题是:如何在ubuntu上运行docker而不添加“sudo”?TL;DR:与网上许多教程所建议的不同(将您的用户帐户添加到
docker
组,这很危险!请参见下文),您可以在.bashrc
中添加别名,以避免键入sudo
,同时使用“密码提示保护”
更准确地说:Docker守护程序套接字由root:Docker拥有:
$ls-l/var/run/docker.sock
srw rw----1根docker 0 janv。28 14:23/var/run/docker.sock
因此,使用此默认设置,您需要通过sudo
预先添加所有docker CLI命令
要避免这种情况,您可以:
$USER
添加到docker
组(但在个人工作站上这样做风险很大,因为这相当于在没有任何sudo
密码提示或审核的情况下为用户帐户提供root权限)
另请参见Docker官方文档中的此页:sudo
,但避免手动键入sudo docker
,一个好的做法是在~/.bashrc
文件中添加以下别名(如需详细信息,请参阅):
\uuuu docker(){
如果[[“${BASH_SOURCE[*]}”=~“BASH completion”];则
docker“$@”
其他的
sudo docker“$@”
fi
}
别名docker=\uu docker
然后,您可以通过打开一个新终端并键入以下内容来测试:
$docker run--rm-it debian:10#询问您的密码
$\docker run--help由于“\”而不会询问您的密码
您应将用户添加到docker组:
sudo usermod -aG docker $USER
之后,您可能需要重新启动Ubuntu感谢@BMitch找到该副本!但我在这里提出的答案似乎根本没有在复制线程中提及。你对此有什么建议吗?(例如,在那里交叉张贴我的答案?或者什么也不做:)@ErikMD如果你的答案适用于那里,那么我会在那里张贴。当只有一个问题尚未解决时,我看不到有重复答案的问题。好的,完成,谢谢@BMitch:)