问题描述
我遵循了本文Docker Registry来设置受限制的访问Docker注册表。 我不明白以下片段。
$ docker run \
--entrypoint htpasswd \
registry:2 -Bbn testuser testpassword > auth/htpasswd
我检查了docker官方docker run文档,但没有找到-Bbn
参考。
问题
-Bbn
是什么意思?
在哪里可以找到-Bbn
的文档?
解决方法
-Bbn
是htpasswd
命令(https://httpd.apache.org/docs/2.4/programs/htpasswd.html)的参数,该命令在参数中指定
--entrypoint htpasswd
docker run
命令实际上是在registry:2
Docker容器中运行以下命令
htpasswd -Bbn testuser testpassword
,然后将输出重定向到本地目录中的文件auth/htpasswd
更新:在容器中运行命令htpasswd -Bbn testuser testpassword > auth/htpasswd
(带有重定向)。您可以将其作为/bin/sh
命令而不是包含重定向的命令来运行
docker run \
registry:2 /bin/sh -c "htpasswd -Bbn testuser testpassword > auth/htpasswd"
如果在目录中找不到auth
,则可以在运行htpasswd
命令之前创建它
docker run \
registry:2 /bin/sh -c "mkdir -p auth && htpasswd -Bbn testuser testpassword > auth/htpasswd"
,
所有docker args出现在映像名称之前;这些参数用于htpasswd,这是..是的,您猜对了,是“入口点”。
htpasswd参数意味着使用bcrypt,批量运行,使用标准输出。