Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker私有注册表用户创建_Docker_Dockerhub - Fatal编程技术网

docker私有注册表用户创建

docker私有注册表用户创建,docker,dockerhub,Docker,Dockerhub,我已经在localhost:5000/v1上创建了我的私有docker注册表,但它不提供身份验证,不提供用户名和密码,只有授权用户才能将图像推送到它 我也无法列出private registry中存在的所有图像,所有文档都说运行下面的命令将列出它localhost:5000/v1/search,但它给出了一个空白的json响应,如下所示: { "num_results": 0, "query": "", "results": [] } 如何解决这个问题 谢谢, Yash第一个

我已经在
localhost:5000/v1
上创建了我的私有docker注册表,但它不提供身份验证,不提供用户名和密码,只有授权用户才能将图像推送到它

我也无法列出private registry中存在的所有图像,所有文档都说运行下面的命令将列出它
localhost:5000/v1/search
,但它给出了一个空白的json响应,如下所示:

{
  "num_results": 0, 
  "query": "", 
  "results": []
} 
如何解决这个问题

谢谢,
Yash

第一个问题的答案是:您需要在注册表前面使用类似的方法来执行实际的密码验证。中有用于和的示例nginx配置文件,用于使用nginx包装注册表;有关的详细信息。

您可以使用htpasswd设置带有dockers注册表映像的登录。然而,我认为他们还没有在这张图片中实现搜索功能。要创建用户,我有以下脚本:

#!/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
然后,为了运行注册表,我使用以下脚本(来自同一文件夹):


注意,我还在上面的certs目录下使用TLS证书。您可以使用openssl命令(与用于保护docker守护程序套接字的命令相同)创建这些命令。

您好,非常感谢您的响应,我查看了私有注册表中的nginx.conf文件。它在这里对身份验证有什么帮助?我尝试通过“docker login”创建用户帐户,它允许我创建帐户,但我无法确定如何使用它,因为推拉操作在不需要任何用户名和密码的情况下工作正常。如果你能帮忙,那就太好了。
#!/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