WSL2 下的 Docker 客户端在没有 sudo 的情况下无法工作

Posted

技术标签:

【中文标题】WSL2 下的 Docker 客户端在没有 sudo 的情况下无法工作【英文标题】:Docker client under WSL2 doesn't work without sudo 【发布时间】:2021-02-18 22:37:36 【问题描述】:

在 WSL2 (Ubuntu 20.04) 上,我正在尝试连接到在 Windows 上运行的 Docker 守护程序。

$ docker ps
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
(exit code 1)

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
(exit code 0)

为什么它可以与 sudo 一起使用,而没有 sudo 则不行?没有 sudo 怎样才能让它工作?

我已经完成了

$ sudo usermod -aG docker $USER 

成功运行,但对问题没有帮助。

我也重新启动了很多次,都没有帮助。

【问题讨论】:

【参考方案1】:

这个解决方案很奇怪 - 但请继续尝试:

取消设置 DOCKER_HOST

如果可行,您可以返回并在 .bashrc 文件中注释掉“export DOCKER_HOST=tcp://localhost:2375”,从而使修复永久生效。我认为这与 docker 在 WSL 2 和 WSL 1 中的配置方式有关,但 Docker 从未更新其文档以反映这一点。

【讨论】:

一开始我没想到这会起作用,但不知何故它解决了这个问题。感谢您的帮助! 这出乎意料,为我省去了很多麻烦,谢谢!。

以上是关于WSL2 下的 Docker 客户端在没有 sudo 的情况下无法工作的主要内容,如果未能解决你的问题,请参考以下文章

Windows下的Linux子系统安装,WSL 2下配置docker

wsl2上的docker非常慢

从零实操基于WSL2 Docker部署Asp.Net Core项目

在 Linux 主机上运行的 Windows 10 来宾 VM 中运行 WSL2

在 Windows 10 + WSL2 上运行 nvidia-docker

如何从 Docker 容器内部访问在 WSL2 上运行的服务?