news 2026/6/10 13:54:01

docker 从 Path 值看容器启动命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
docker 从 Path 值看容器启动命令

文章目录

    • 一、Path 的常见值
    • 二、Path 的生成规则
      • 2.1、Dockerfile 中的 CMD 或 ENTRYPOINT
      • 2.2、 docker run 命令的参数
      • 2.3、 --entrypoint 参数
    • 三、Path 的限制
    • 四、实际使用
      • 4.1、 Nginx 容器
      • 4.2、 交互式 Shell
      • 4.3、 sleep
      • 4.3、 自定义脚本

在 Docker 容器的配置文件config.v2.json中,"Path"字段指定了容器启动时要执行的主程序(可执行文件)的路径。它决定了容器运行时的入口点(Entry Point),通常与"Args"字段配合使用,共同构成容器的启动命令。

一、Path 的常见值

“Path” 的值必须是容器文件系统中某个可执行文件的 绝对路径,常见的值包括:

示例值说明
/bin/bash启动 Bash shell(常用于交互式容器)
/bin/sh启动默认的 shell(如 Alpine 系统)
/usr/bin/python运行 Python 脚本(需在 Dockerfile 中安装 Python)
/usr/local/bin/app自定义应用程序的路径(需在容器中预装)
/entrypoint.sh自定义入口脚本(需在 Dockerfile 中赋予可执行权限)
/proc/self/exe特殊值,表示当前进程的自身(用于调试或特殊场景)

二、Path 的生成规则

2.1、Dockerfile 中的 CMD 或 ENTRYPOINT

如果 Dockerfile 中定义了CMDENTRYPOINT,Docker 会将其解析为"Path""Args"

示例 1(CMD):

CMD ["nginx", "-g", "daemon off;"]

对应的 config.v2.json:

"Path":"/usr/sbin/nginx","Args":["-g","daemon off;"]

示例 2(ENTRYPOINT + CMD):

ENTRYPOINT ["/bin/sh", "-c"] CMD ["echo 'Hello Docker!'"]

对应的 config.v2.json:

"Path":"/bin/sh","Args":["-c","echo 'Hello Docker!'"]

2.2、 docker run 命令的参数

如果用户在 docker run 中显式指定命令,会覆盖 Dockerfile 中的 CMD。
示例:

dockerrun -it ubuntu /bin/bash

对应的 config.v2.json:

"Path":"/bin/bash","Args":[]

2.3、 --entrypoint 参数

使用--entrypoint可以覆盖 Dockerfile 中的 ENTRYPOINT。
示例:

dockerrun --entrypoint /bin/sh nginx

对应的 config.v2.json:

"Path":"/bin/sh","Args":[]

三、Path 的限制

  • 必须是绝对路径:Docker 不支持相对路径(如 ./bin/app),否则会尝试在 $PATH 中查找。
  • 可执行权限:目标路径必须是可执行文件,否则容器启动失败。
  • 与 Entrypoint 的关系:
    • 如果 Dockerfile 中定义了 ENTRYPOINT,“Path” 会优先使用 ENTRYPOINT 的值。
    • 如果未定义 ENTRYPOINT,“Path” 会从 CMD 的第一个参数推导。

四、实际使用

4.1、 Nginx 容器

"Path":"/usr/sbin/nginx","Args":["-g","daemon off;"]

对应命令:nginx -g "daemon off;",用于以后台模式运行 Nginx。

4.2、 交互式 Shell

"Path":"/bin/bash","Args":[]

对应命令:bash,进入容器的交互式终端。

4.3、 sleep

"Path":"sleep""Args":[10000]

对应命令:sleep 10000,容器保持运行状态10000 s

4.3、 自定义脚本

"Path":"/app/start.sh","Args":[]

要求/app/start.sh是可执行脚本(需在 Dockerfile 中 RUN chmod +x /app/start.sh)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:22:19

为什么国外开源项目作者一般都能拿到可观的收入,作为全职做也超过上班收入,在国内完全不行

国外开源项目作者能获得可观收入并实现全职化,而国内同行普遍难以维生,其根本差异源于‌系统性商业生态的缺失‌,而非个人能力或努力程度。以下是基于权威数据与企业实践的结构化分析:‌一、国外:企业将开源视为战略投…

作者头像 李华
网站建设 2026/6/8 3:30:43

Llama3微调实战:借助PyTorch-CUDA-v2.7镜像完成70B参数训练

Llama3微调实战:借助PyTorch-CUDA-v2.7镜像完成70B参数训练 在当前大模型技术飞速演进的背景下,如何高效地对千亿级参数的语言模型进行微调,已经成为AI工程落地的核心挑战之一。以Meta发布的Llama3-70B为例,其庞大的参数规模不仅带…

作者头像 李华
网站建设 2026/6/10 13:21:03

GitHub星标超10k的PyTorch项目都用了哪些环境配置?

GitHub星标超10k的PyTorch项目都用了哪些环境配置? 在深度学习领域,一个项目的成功往往不仅取决于模型设计本身,更依赖于背后那套稳定、高效、开箱即用的开发与运行环境。当你打开像 YOLOv5、HuggingFace Transformers 或 Stable Diffusion 这…

作者头像 李华
网站建设 2026/6/10 13:19:34

NVMe硬盘性能测试:为PyTorch-CUDA-v2.7提供高速存储支撑

NVMe硬盘性能测试:为PyTorch-CUDA-v2.7提供高速存储支撑 在现代深度学习训练中,一个常被忽视的真相是:再强大的GPU,也可能因为一块慢速硬盘而沦为“显卡等数据”。当ResNet-50跑完一个epoch要两小时,其中可能有40分钟是…

作者头像 李华
网站建设 2026/6/10 11:19:03

PyTorch-CUDA-v2.7镜像安全性评估:是否存在后门风险?

PyTorch-CUDA-v2.7 镜像安全性评估:是否存在后门风险? 在现代 AI 开发中,一个命令就能启动 GPU 加速训练的时代已经到来。你只需敲下一行 docker run --gpus all,几秒后便能在一个预装了 PyTorch、CUDA 和 Jupyter 的环境中跑起 …

作者头像 李华
网站建设 2026/6/10 11:41:51

gRPC高性能通信:PyTorch-CUDA-v2.7微服务架构设计

gRPC 高性能通信:PyTorch-CUDA-v2.7 微服务架构设计 在当今 AI 服务对实时性与吞吐量要求日益严苛的背景下,传统的 RESTful CPU 推理方案已逐渐暴露出瓶颈。尤其是在图像识别、语音处理和自然语言理解等高并发场景中,延迟敏感型应用迫切需要…

作者头像 李华