考点精讲
记忆技巧
FROM 是地基,RUN 是施工,COPY 是搬料,CMD 是开门营业
构建用 build,推送用 push,登录用 login
构建用 build,推送用 push,登录用 login
常见误区
- CMD 与 ENTRYPOINT 混淆:CMD 可被 run 覆盖,ENTRYPOINT 固定入口
- 构建上下文过大导致 build 缓慢
- 忽略 .dockerignore 把无关文件打进镜像
真题思路
- 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 Dockerfile 中用于指定容器启动时默认执行命令、且可被 docker run 后接参数覆盖的指令是?
RUN ENTRYPOINT CMD COPY
答案:C
解析:CMD 指定默认启动命令、可被 docker run 参数覆盖;ENTRYPOINT 是固定入口、不易被覆盖;RUN 是构建期命令;COPY 是复制文件。
常见问题
Q:CMD 和 ENTRYPOINT 怎么区分
A:ENTRYPOINT 定义固定入口命令,CMD 提供默认参数;docker run 后跟的命令会覆盖 CMD,但不会覆盖 ENTRYPOINT。
Q:怎么让构建更快
A:利用分层缓存——把不常变动的指令(如安装依赖)放在前面,常变动的代码放在后面。
Q:构建上下文太大怎么办
A:用 .dockerignore 排除不需要的文件,减小发送给守护进程的上下文体积。
相关知识
教材出处:第2章 Docker的安装和管理 构建Docker镜像