首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何不用sudo在ubuntu上运行码头?

如何不用sudo在ubuntu上运行码头?
EN

Stack Overflow用户
提问于 2021-01-29 13:15:36
回答 2查看 1.3K关注 0票数 0

我想通过运行以下命令来运行我的码头:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

发布于 2021-01-29 13:17:37

TL;DR:与网络上的许多教程不同(将您的用户帐户添加到docker组中,这是有风险的!),您可以在.bashrc中添加一个别名,以避免输入sudo,同时使用“密码提示保护”。

更准确地说,-- Docker守护进程套接字属于root:docker

代码语言:javascript
复制
$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 janv. 28 14:23 /var/run/docker.sock

因此,使用此默认设置,您需要通过sudo将所有停靠器CLI命令放在前面。

为了避免这种情况,您可以:

  1. $USER添加到docker组中(但是在您的个人工作站上这样做是非常危险的,因为这相当于向用户帐户提供根权限,而无需任何密码提示或审核)。

另请参阅正式Docker文档中的此页面:

https://docs.docker.com/engine/security/#docker-daemon-attack-surface

  1. ,或者,如果要自动添加sudo,但要避免手动键入sudo docker,一个很好的做法是在~/.bashrc文件中添加以下别名(例如,this thread获得详细信息):

__docker() {如果[ "${BASH_SOURCE*}“=~”bash-BASH_SOURCE*“]];那么码头"$@”其他sudo码头"$@“fi }别名docker=__docker

然后,您可以通过打开一个新终端并键入:

$ docker run -rm -it debian:10 #询问您的密码$ \docker run -由于'\'帮助#不问您的密码

票数 1
EN

Stack Overflow用户

发布于 2021-01-29 13:18:49

您应该将用户添加到停靠组:

代码语言:javascript
复制
sudo usermod -aG docker $USER

在您不得不重新启动Ubuntu之后

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65955193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档