我想通过运行以下命令来运行我的码头:
docker build -t getting-started .我得到以下错误:
在试图连接到unix :/ /var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=getting-started&target=&ulimits=null&version=1:拨号unix/var/run/docker.sock: connect:权限被拒绝时被拒绝了权限
我的问题是:在不添加"sudo“的情况下,如何在ubuntu上运行docker?
发布于 2021-01-29 13:17:37
TL;DR:与网络上的许多教程不同(将您的用户帐户添加到docker组中,这是有风险的!),您可以在.bashrc中添加一个别名,以避免输入sudo,同时使用“密码提示保护”。
更准确地说,:-- Docker守护进程套接字属于root:docker
$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 janv. 28 14:23 /var/run/docker.sock因此,使用此默认设置,您需要通过sudo将所有停靠器CLI命令放在前面。
为了避免这种情况,您可以:
$USER添加到docker组中(但是在您的个人工作站上这样做是非常危险的,因为这相当于向用户帐户提供根权限,而无需任何密码提示或审核)。另请参阅正式Docker文档中的此页面:
https://docs.docker.com/engine/security/#docker-daemon-attack-surface
sudo,但要避免手动键入sudo docker,一个很好的做法是在~/.bashrc文件中添加以下别名(例如,this thread获得详细信息):__docker() {如果[ "${BASH_SOURCE*}“=~”bash-BASH_SOURCE*“]];那么码头"$@”其他sudo码头"$@“fi }别名docker=__docker
然后,您可以通过打开一个新终端并键入:
$ docker run -rm -it debian:10 #询问您的密码$ \docker run -由于'\'帮助#不问您的密码
发布于 2021-01-29 13:18:49
您应该将用户添加到停靠组:
sudo usermod -aG docker $USER在您不得不重新启动Ubuntu之后
https://stackoverflow.com/questions/65955193
复制相似问题