问题在于您的第一个和第二个命令语法。
docker create zricethezav/gitleaks --name=gitleaks
--name应该在图像名称之前,否则docker create会将其解释为COMMAND参数而不是OPTIONS 标志。
docker start gitleaks --ssh-key='bucket' --repo "$line"
docker start我了解您想使用参数 --ssh-key 和 --repo 运行映像,但是使用命令是不可能的。如果你想让这些参数传递给镜像运行的进程,你应该将这些参数传递给镜像名称之后的docker create或docker run命令。
所以你应该这样做:
# Mind the --name before the image name
docker create --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line"
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks
docker create 的解释:
docker create用法是:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
where OPTIONSflags 应该在 before 中指定IMAGE,并且之后的所有内容都IMAGE将被解释为COMMANDand ARG...。
当你跑步时
docker create zricethezav/gitleaks --name=gitleaks
实际上,您传递--name=gitleaksasCOMMAND将覆盖默认图像命令(Dockerfile 中通常提供的CMD命令),您可能希望将其传递为OPTIONS. 例如,如果您运行:
docker create alpine --name=foobar
docker create --name=foobar alpine
docker ps -a输出将如下所示:
IMAGE COMMAND NAMES
alpine "/bin/sh" foobar
alpine "--name=foobar" quirky_varahamihira
如果要同时传递OPTIONS和COMMAND,则必须OPTIONS在图像名称之前和图像名称COMMAND之后指定。