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

标签 docker windows-subsystem-for-linux wsl-2

在 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 
运行成功,但没有帮助解决问题。
我也重新启动了很多次,这没有帮助。

最佳答案

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

unset DOCKER_HOST


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

关于WSL2 下的 Docker 客户端在没有 sudo 的情况下无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64710480/

相关文章:

azure - WSL2 上的 powershell 浏览器访问

asp.net - Docker 日志中的 .net 输出

docker - 从 docker 容器发送 udp 广播

windows - 为什么 gulp.watch 或 fs.watch 无法在 Windows 上 Ubuntu 上的 Bash 上运行?

带有符号链接(symbolic link)的 docker ADD

docker-for-windows - 为什么 htop 不使用 wsl2 显示我的 docker 进程

docker - 绑定(bind)通过api创建的Docker容器

django - 127.0.0.1 拒绝在 docker django 中连接

ubuntu - 无法选择功能为 : [[gpu]] 的设备驱动程序 ""

windows-subsystem-for-linux - 从 WSL 使 .exe/.cmd/.bat 可执行