在Window和WSL之间共享Docker凭证

时间:2019-12-10 16:15:05

标签: docker authentication credentials windows-subsystem-for-linux

环境

  • Windows版本和内部版本2004(操作系统内部版本19037.1)
  • Docker Edge版本2.1.6.1
  • WSL 2上的Ubuntu 18.04

当前设置和状态:

  • 在Windows上安装了docker
  • 为docker,docker-compose,docker-credential-desktop等创建别名...

运行命令,例如docker builddocker psdocker pulldocker images都可以正常工作。现在,我想推送图像,因此,我当然必须先登录。

问题:登录docker hub。

  • 我在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来说,它无法共享甚至不确认凭据,因此它再次询问用户和密码,并抛出与上述相同的错误。

2 个答案:

答案 0 :(得分:3)

这对我有用,

sudo  ln -s /mnt/c/Program\ Files/Docker/Docker/resources/bin/docker-credential-desktop.exe /usr/bin/docker-credential-desktop.exe

将可执行文件从Windows路径链接到Linux路径,或者您可以在Linux PATH上添加Windows PATH。

引用:https://github.com/docker/for-win/issues/6652

答案 1 :(得分:0)

事实证明,Docker和WSL之间的集成比我想象的要好。虽然可以更好地记录下来。我打算改变方式,尝试在WSL中安装docker。因此,我摆脱了所有别名并重新启动了会话。瞧,当我运行docker时,仍有东西在运行。

这是因为docker的边缘版本创建了适当的符号链接,现在我可以毫无问题地登录docker hub。