没有证书和DNS的Docker身份验证

时间:2019-03-07 12:12:16

标签: docker authentication

我的目标是要求尝试从我的本地Docker注册表尝试docker pull的用户输入密码。我猜他必须先通过docker login登录。

我们的网络没有DNS服务器,仅端口5000(用于Docker注册表)可用。根据{{​​3}},似乎除了通过DNS和证书颁发机构之外,没有其他进行身份验证的可能性。真的吗?
是否可以进行基本(纯文本和未加密)身份验证?

1 个答案:

答案 0 :(得分:0)

使用nginx作为反向代理,并在其中启用基本身份验证。

upstream registry {
    server registry:5000 fail_timeout=0;
}

server {
    listen 80;
    server_name registry.example.com;

    server_tokens off;

    auth_basic "Authentication Required";
    auth_basic_user_file htpasswd/file/here;

    client_max_body_size 2G;

    proxy_send_timeout 300;
    proxy_read_timeout 300;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://registry;
    }
}