Вы можете использовать htpasswd для настройки входа в систему с помощью образа реестров докеров. Тем не менее, я не верю, что они реализовали функцию поиска на этом изображении. Чтобы создать пользователь, у меня есть следующий сценарий:
#!/bin/sh
usage() { echo "$0 user"; exit 1; }
if [ $# -ne 1 ]; then
usage
fi
user=$1
cd `dirname $0`
if [ ! -d "auth" ]; then
mkdir -p auth
fi
chmod 666 auth/htpasswd
docker run --rm -it \
-v `pwd`/auth:/auth \
--entrypoint htpasswd registry:2 -B /auth/htpasswd $user
chmod 444 auth/htpasswd
Затем для запуска реестра, я использую следующий скрипт (из той же папки):
#!/bin/sh
cd `dirname $0`
docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/certs:/certs:ro \
-v `pwd`/auth/htpasswd:/auth/htpasswd:ro \
-v `pwd`/registry:/var/lib/registry \
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/host-cert.pem" \
-e "REGISTRY_HTTP_TLS_KEY=/certs/host-key.pem" \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \
registry:2
Обратите внимание, что я также с помощью TLS в вышеуказанном каталоге certs. Вы можете создать их с помощью команд openssl (тех же, что используются для обеспечения подключения демона докеров).
Привет, Большое спасибо за ответ, я посмотрел файл nginx.conf в моем личном реестре. как это помогает здесь для аутентификации? Я попытался создать учетную запись пользователя «docker login», он позволяет мне создавать учетную запись, но я не могу сделать так, как она используется, потому что push и pull отлично работают без каких-либо имени пользователя и пароля. Было бы здорово, если бы вы могли помочь. –
priyank