环境
Windows 版本和内部版本- 2004(操作系统内部版本 19037.1(
- 码头工人边缘版本 2.1.6.1
- Ubuntu 18.04 on WSL 2
当前设置和状态:
- 安装在 Windows 上的 docker 为 docker、
- docker-compose、docker-credential-desktop 等创建了别名......
运行诸如docker build
、docker ps
、docker pull
docker images
等命令都可以正常工作。现在我想推送一个图像,所以我当然必须先登录。
问题:登录到码头工人中心。
- 我在 WSL 终端中运行
docker login
- 我输入了用户名和密码
- 我收到以下错误
Error saving credentials: error storing credentials - err: exec: "docker-credential-desktop": executable file not found in %PATH
%, out: ``
到目前为止我尝试过什么
Powershell的docker login
工作正常。所以我在/mnt/c/Users/<winusername>/.docker
和/home/<wslusername>/.docker
之间创建了一个象征性的联系。等效的.aws
工作正常,但对于.docker
它无法共享甚至确认凭据,因此它再次询问用户和密码并抛出与上述相同的错误。
这对我有用,
sudo ln -s /mnt/c/Program Files/Docker/Docker/resources/bin/docker-credential-desktop.exe /usr/bin/docker-credential-desktop.exe
将可执行文件从 windows 路径链接到 linux 路径,或者您可以在 linux 路径上添加 windows 路径。
参考: https://github.com/docker/for-win/issues/6652
> 更新时间:2021 年 2 月
现在这一切都简单多了。如果您在最新版本的 Windows 上使用 WSL2,只需在 Windows 端安装 docker 并确保配置:
- 一般:我们基于 WSL 2 的引擎
- 在资源/WSL 集成中:启用与默认 WSL 发行版的集成
您必须重新启动码头工人。一旦完成,一切都透明地工作。
下面这里可以忽略
事实证明,Docker和WSL之间的集成比我想象的要好。虽然它本可以更好地记录下来。我打算改变策略并尝试在 WSL 中安装 docker。所以我摆脱了所有别名并重新启动了我的会话。你瞧,当我跑docker
时,还有东西在跑。
这是因为 docker 的边缘版本创建了适当的符号链接,现在我毫无问题地登录到 docker 中心。