无法连接到本地 docker 存储库。
这里是 docker compse 文件:
version: '3'
services:
registry:
restart: always
image: registry:2
container_name: registry
ports:
- "5000:5000"
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
REGISTRY_AUTH_HTPASSWD_PATH: /home/user/auth/registry.password
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
volumes:
- ./data:/data
运行 docker login localhost:5000
时出现以下错误:
> Error response from daemon: Get http://localhost:5000/v2/: dial tcp [::1]:5000: connect: connection refused
注意:/home/user/auth/registry.password
文件存在
答案 0 :(得分:0)
来自https://docs.docker.com/registry/deploying/#native-basic-auth:
<块引用>警告:您不能将身份验证与身份验证方案一起使用 以明文形式发送凭据。您必须首先配置 TLS 身份验证才能工作。
因此,要么安全身份验证,要么根本不进行身份验证。
如果您确实想要没有 TSL 的基本身份验证,您唯一的选择是使用前面的网络服务器,它可以做到这一点,并将请求代理到一个完全没有身份验证的普通注册表。请参阅 apache 和 nginx 的示例,如果不需要,请删除所有 SSL 配置。 这可能看起来有点工作,但并不难,而且非常灵活。
另一种选择是使用 TSL,如果您的域还没有有效的证书,您可以 configure the registry with a Let's Encrypt certificate,或者您可以 set it up with a self-signed certificate(只有在您确定此注册表时才这样做)与外界隔绝)。