我的目标是要求尝试从我的本地Docker注册表尝试docker pull
的用户输入密码。我猜他必须先通过docker login
登录。
我们的网络没有DNS服务器,仅端口5000(用于Docker注册表)可用。根据{{3}},似乎除了通过DNS和证书颁发机构之外,没有其他进行身份验证的可能性。真的吗? 是否可以进行基本(纯文本和未加密)身份验证?
答案 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;
}
}