我在 Kubernetes 中有一个私有注册表,我已使用它连接到
kubectl port-forward docker-registry-6bc94649d-529hq 443:5000
我可以通过curl请求在我的浏览器中成功登录并与之交互,但由于某种原因Docker(Docker桌面-Windows)我可以在端口转发中看到甚至没有一个请求需要它处理。我添加了一条规则以允许连接 docker exe 文件,并且我也尝试完全关闭防火墙,但仍然没有任何结果。任何帮助将不胜感激,谢谢。
发动机未运转时:
C:\Users\josep>curl -k https://localhost:443/v2/_catalog -u admin:pass
{"repositories":[]}
C:\Users\josep>docker login 127.0.0.1:443 -u admin -p pass
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
C:\Users\josep>docker image list
error during connect: this error may indicate that the docker daemon is not running: Head "http://%2F%2F.%2Fpipe%2Fdocker_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified.
现在发动机正在运转:
C:\Users\josep>docker login 127.0.0.1:443 -u admin -p pass
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "http://127.0.0.1:443/v2/": dial tcp 127.0.0.1:443: connect: connection refused
C:\Users\josep>docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
我发现这是 Docker Desktop 在虚拟机中运行引擎的问题(此处),因此我将端口转发命令更改为:
kubectl port-forward docker-registry-7dc967c478-qkx5k --address=192.168.0.228 443:5000
这样虚拟机中的引擎就可以访问注册表了。