Nej*_*juf 7 docker docker-toolbox
我在Windows 8.1中安装了Docker Toolbox并且一直在关注安装教程.当你进入创建和推动自己想象的步骤时,我在尝试运行时遇到了这个错误docker login ....
### VIA Docker Quickstart Terminal
### docker login --username=myuser --password="mypass" --email=myemail@gmail.com
time="2015-11-17T03:20:58.160803558Z" level=debug msg="Calling POST /v1.21/auth"
time="2015-11-17T03:20:58.160838971Z" level=info msg="POST /v1.21/auth"
time="2015-11-17T03:20:58.169033324Z" level=debug msg="hostDir: /etc/docker/certs.d/https:/registry-win-tp3.docker.io/v1"
time="2015-11-17T03:20:58.169071565Z" level=debug msg="pinging registry endpoint https://registry-win-tp3.docker.io/v1/"
time="2015-11-17T03:20:58.169084660Z" level=debug msg="attempting v1 ping for registry endpoint https://registry-win-tp3.docker.io/v1/"
time="2015-11-17T03:20:58.898542338Z" level=debug msg="Error unmarshalling the _ping PingResult: invalid character '<' looking for beginning of value"
time="2015-11-17T03:20:58.898803841Z" level=debug msg="PingResult.Version: \"\""
time="2015-11-17T03:20:58.898818084Z" level=debug msg="Registry standalone header: ''"
time="2015-11-17T03:20:58.898836197Z" level=debug msg="PingResult.Standalone: true"
time="2015-11-17T03:20:58.898853685Z" level=debug msg="attempting v1 login to registry endpoint https://registry-win-tp3.docker.io/v1/"
time="2015-11-17T03:20:59.478756938Z" level=error msg="Handler for POST /v1.21/auth returned error: Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n\n"
time="2015-11-17T03:20:59.478815334Z" level=error msg="HTTP Error" err="Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n\n" statusCode=500
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我尝试docker login ...在Docker默认VM中运行.它有效!
### VIA default virtual machine (192.168.99.100)
### docker login --username=myuser --password="mypass" --email=myemail@gmail.com https://index.docker.io/v1/
time="2015-11-17T03:20:46.053333255Z" level=debug msg="Calling POST /v1.21/auth"
time="2015-11-17T03:20:46.053404176Z" level=info msg="POST /v1.21/auth"
time="2015-11-17T03:20:46.082796012Z" level=debug msg="hostDir: /etc/docker/certs.d/https:/index.docker.io/v1"
time="2015-11-17T03:20:46.082930763Z" level=debug msg="pinging registry endpoint https://index.docker.io/v1/"
time="2015-11-17T03:20:46.082946790Z" level=debug msg="attempting v1 ping for registry endpoint https://index.docker.io/v1/"
time="2015-11-17T03:20:46.082959103Z" level=debug msg="attempting v1 login to registry endpoint https://index.docker.io/v1/"
Run Code Online (Sandbox Code Playgroud)
我注意到他们使用了两个不同的URL,第一个遇到了解析错误.凭证显然是正确的,因为它们在VM内部工作,除非这两个域不共享用户.MINGW64是否损坏了URL或响应?
2016年2月更新
PR 19891"启用跨平台登录到Registry"应该可以解决这个问题
使用守护程序定义的注册表URL进行docker登录.
这允许与Linux守护程序交互的Windows客户端正确使用默认的Registry端点而不是Windows特定的端点.
它是在提交19eaa71(也许是对于docker 1.10?)
这在docker / docker issue 15612和docker / docker issue 18019中都有报告
在对源代码进行一些分析后,我发现我们有不同的Windows和UNIX注册表URL.
Windows网址来自最近的PR 15417评论:
// Currently it is a TEMPORARY link that allows Microsoft to continue
// development of Docker Engine for Windows.
Run Code Online (Sandbox Code Playgroud)
所以这个网址可能不起作用(除非你是在最新的Windows Server 2016上)
docker/hub-feedback问题473似乎有一个解决方法,其中涉及:
指定docker io的默认索引注册表,
docker login --username=myuser --password=mypassword --email=myemail https://index.docker.io/v1/
WARNING: login credentials saved in C:\Users\myuser\.docker\config.json
Login Succeeded
Run Code Online (Sandbox Code Playgroud)修改config.json前一步创建的文件,以增加同一凭据index.docker.io为registry-win:
config.json:
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "myhash",
"email": "myemail"
},
"https://registry-win-tp3.docker.io/v1/": {
"auth": "myhash",
"email": "mydomain"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在那之后,一个docker push index.docker.io/myuser/myrepo:latest确实有效.
| 归档时间: |
|
| 查看次数: |
2757 次 |
| 最近记录: |