我在 Windows 10 中向我的 docker 私有注册表添加身份验证。我最初没有实现基本身份验证,但后来,我使用 auth 文件夹中的 htpasswd 文件实现了它。我一直在跟进本教程中给出的说明:https://www.codeproject.com/Articles/1263831/How-to-secure-your-private-Docker-Registry。但由于 Windows 的 htpasswd 文件存在问题,因此我必须使用 HtPasswd 生成器创建一个 htpasswd 文件并将其复制到我的 auth 文件夹中。
\n后来,我运行此命令来构建容器并将卷、端口和 htpasswd 文件从主机绑定到我的容器:\ndocker run -d -p 5000:5000 --name hub.local -v C:\\localHub\\registry:/var/lib/registry -v C:\\localHub\\auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 registry:2
它工作正常,我可以看到容器已启动并在端口 5000 上运行:
\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n41499c3f07e6 registry:2 "/entrypoint.sh /etc\xe2\x80\xa6" 17 minutes ago Up 17 minutes 0.0.0.0:5000->5000/tcp hub.local\nRun Code Online (Sandbox Code Playgroud)\n但是当我尝试使用它登录到我的容器时,docker login 172.16.13.38:5000它会要求我输入用户名和密码,但显示相同的错误。
docker login …Run Code Online (Sandbox Code Playgroud)