gpt4 book ai didi

docker - 将 docker run 翻译成子组件

转载 作者:IT老高 更新时间:2023-10-28 21:20:16 26 4
gpt4 key购买 nike

我有这个 docker run 命令:

docker run --rm --name=gitleaks \
-v "/keys/ssh/values:/root/.ssh" \
zricethezav/gitleaks \
--ssh-key='bucket' \
--repo "$line"

我把它翻译成这样:

  docker create zricethezav/gitleaks --name=gitleaks
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks --ssh-key='bucket' --repo "$line"

但它给了我这个错误:

Error: No such container:path: gitleaks:/root
unknown flag: --ssh-key

有人知道我哪里出错了吗?最终我从一个正在运行的容器中调用 docker run 并且在共享文件时遇到了问题,所以试图让 docker cp 工作。

最佳答案

问题在于您的第一个和第二个命令语法。

docker create zricethezav/gitleaks --name=gitleaks 

--name 应该是 在图像名称之前,否则 docker create 会将其解释为 COMMAND 参数OPTIONS 标志

 docker start gitleaks --ssh-key='bucket' --repo "$line"

我知道您想使用参数--ssh-key 和--repo 运行镜像,但是docker start 是不可能的。命令。如果要将这些参数传递给镜像运行的进程,则应将这些参数传递给镜像名称后的 docker createdocker 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 usage是:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS 标志应该在 IMAGE 之前指定,并且 IMAGE 之后的所有内容都将被解释为 COMMANDARG....

当你运行时

docker create zricethezav/gitleaks --name=gitleaks

您实际上将 --name=gitleaks 作为 COMMAND 传递,这将覆盖默认图像命令(通常由 CMD 在Dockerfile),您可能希望将其作为 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

如果要同时传递 OPTIONSCOMMAND,则必须在图像名称和 COMMAND 之前指定 OPTIONS > 在图片名称之后。

关于docker - 将 docker run 翻译成子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56084451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com