gpt4 book ai didi

docker - 使用选项/参数覆盖从主机运行的默认Docker运行

转载 作者:行者123 更新时间:2023-12-02 19:08:33 24 4
gpt4 key购买 nike

FROM alpine:3.5
CMD ["echo", "hello world"]

因此,在构建 docker build -t hello .之后,我可以通过调用 docker run hello运行问候,并获得输出 hello world

现在,假设我希望运行 lssh-很好。但是我真正想要的是能够传递参数。例如 ls -al甚至 tail -f /dev/null来保持容器运行而无需更改Dockerfile

我该怎么做呢?我在执行模式下的尝试失败了... docker run hello --cmd=["ls", "-al"]

最佳答案

docker run命令中镜像名称之后的所有内容都将成为CMD的新值。这样就可以运行:

docker run hello ls -al

请注意,如果定义了 ENTRYPOINT,则 ENTRYPOINT将以args形式接收 CMD的值,而不是直接运行 CMD。因此,您可以使用以下内容将入口点定义为shell脚本:
#!/bin/sh

echo "running the entrypoint code"

# if no args are passed, default to a /bin/sh shell
if [ $# -eq 0 ]; then
set -- /bin/sh
fi

# run the "CMD" with exec to replace the pid 1 of this shell script
exec "$@"

关于docker - 使用选项/参数覆盖从主机运行的默认Docker运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44956180/

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