我尝试通过以下方式创建一个docker htpasswd
:
docker run --entrypoint htpasswd registry:2 -Bbn dockerreg dockerreg > auth/htpasswd
但结果出现了以下错误:
bash: auth/htpasswd: Permission denied
我该如何修复它?
答案1
不太清楚您要用该docker run
命令做什么。
您当前的命令
docker run --entrypoint htpasswd registry:2 -Bbn dockerreg dockerreg > auth/htpasswd
- 启动 docker 容器
registry:2
- ... 使用入口点
htpasswd
命令 - 该
htpasswd
命令获取选项-Bbn
和选项(为用户dockerreg dockerreg
设置密码)dockerreg
dockerreg
- 然后命令的输出(!)
docker run
被转发到auth/htpasswd
。这将创建一个auth/htpasswd
相对于命令执行路径的文件docker run
。这可能不是有意的,并导致Permission denied
。
我不知道输出auth/htpasswd
应该位于何处,但您应该指定一个绝对路径,例如/home/myuser/web/auth/htpasswd
或执行命令的用户docker run
具有访问权限的其他文件夹。