gpt4 book ai didi

docker - 启动 docker 容器时运行命令行

转载 作者:行者123 更新时间:2023-12-04 12:29:42 34 4
gpt4 key购买 nike

就我而言,您可以在使用 RUN 构建图像时运行命令行或者使用 CMD 运行容器时.无论如何在启动 docker 容器时这样做?
我的目标是在键入 docker start my_container_name 后自动运行 gcloud 数据存储区.
如果这是可能的,我应该对我的 Dockerfile 应用哪些更改?
(我已经安装了所有需要的包,我可以在 docker run --name my_container_name -i -t my_image_name 之后运行该命令,但我希望它在启动容器时也能运行)

最佳答案

Docker 执行 RUN命令 构建时 图片。
Docker 执行 ENTRYPOINT命令 当您开始时 容器。 CMD作为 ENTRYPOINT 的参数.当您 时,这两个都可以被覆盖。创建容器 从图像。它们在 Dockerfile 中的目的是为您或其他人将来从该镜像创建容器时提供默认值。
考虑这个例子:

FROM debian:buster

RUN apt update && apt install procps

ENTRYPOINT ["/usr/bin/ps"]
CMD ["aux"]
RUN命令添加 ps命令到图像, ENTRYPOINTCMD不会执行,但会在您运行容器时执行:
# create a container named 'ps' using default CMD and ENTRYPOINT
docker run --name ps my_image
# equivalent to /usr/bin/ps aux

# start the existing container 'ps'
docker start ps
# equivalent to /usr/bin/ps aux

# override CMD
docker run my_image au
# equivalent to /usr/bin/ps au

# override both CMD and ENTRYPOINT
docker run --entrypoint=/bin/bash my_image -c 'echo "Hello, world!"'
# will print Hello, world! instead of using ps aux

# no ENTRYPOINT, only CMD
docker run --entrypoint="" my_image /bin/bash -c 'echo "Hello, world!"'
# the output is the same as above
每次使用 docker run你创建一个容器。二手 ENTRYPOINTCMD保存为容器属性并在每次启动容器时执行。

关于docker - 启动 docker 容器时运行命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66760944/

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