Назад | Перейти на главную страницу

частный реестр докеров - базовая аутентификация

Я настраиваю небезопасный частный реестр, используя:

[root@docker-regi ~]#docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > /auth/htpasswd

[root@docker-regi ~]#docker run -d -p 5000:5000 --restart=always --name registry_auth  -v `pwd`/auth:/auth  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd"  registry:2

Но при попытке авторизоваться:

[root@docker-remote ~]# !748
docker login -u myuser -p mypassword 192.168.122.190:5000
Error response from daemon: login attempt to http://192.168.122.190:5000/v2/ failed with status: 400 Bad Request
[root@docker-remote ~]# 

Упоминается https://docs.docker.com/registry/deploying/#native-basic-auth && https://github.com/docker/distribution/issues/842

В первой команде вы записали htpasswd на:

/auth/

затем вы установили:

`pwd`/auth

Таким образом, эти каталоги не совпадают, вы никогда не монтировали файл htpassswd

Если вы напишете auth/htpasswd он будет работать, так как он пишет в ваш текущий каталог, а не в /

У меня отлично сработало следующее:

mkdir auth

docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd

docker run -d -p 5000:5000 --restart=always --name registry_auth  -v `pwd`/auth:/auth  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd"  registry:2

docker login -u myuser -p mypassword localhost:5000

Возврат:

Login Succeeded