全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

Dockerfile 进阶专题测试

14 题 30 分钟 难度:

考察知识点

  • Dockerfile 进阶 (14题): 多阶段构建、镜像瘦身、缓存利用、安全构建
1
单选题

Docker 多阶段构建(Multi-stage Build)的主要目的是什么?

A

加快镜像构建速度

B

减小最终镜像体积

C

支持同时构建多个镜像

D

自动优化 Dockerfile 指令顺序

2
多选题

以下关于 Docker 多阶段构建的说法正确的有哪些?

A

一个 Dockerfile 中可以有多个 FROM 指令

B

可以使用 --from=<阶段名> 从前一个阶段复制文件

C

只有最后一个阶段的镜像会被保留和输出

D

每个阶段的镜像默认都会被保留

E

可以使用 AS 关键字为阶段命名

3
判断题

使用多阶段构建不仅可以减小镜像体积,还能提高安全性,因为最终镜像不包含编译工具和源代码。

A

B

4
填空题

在多阶段构建中,从名为 builder 的阶段复制文件应使用指令 COPY ______________ /app/dist /app/。

5
单选题

.dockerignore 文件的作用与以下哪个文件最相似?

A

Dockerfile

B

.gitignore

C

docker-compose.yml

D

.env

6
多选题

以下哪些文件或目录通常应该添加到 .dockerignore 中?

A

.git

B

node_modules

C

Dockerfile

D

.env

E

src/

7
判断题

.dockerignore 文件中可以使用 ! 前缀来取消排除某个已被匹配的文件或目录。

A

B

8
单选题

Dockerfile 中 ARGENV 指令的主要区别是什么?

A

ARG 用于设置容器运行时环境变量,ENV 用于构建时变量

B

ARG 只在构建时可用,ENV 在构建后和容器运行时都可用

C

ARG 和 ENV 完全相同,只是名称不同

D

ARG 用于设置镜像标签,ENV 用于设置版本号

9
填空题

要在构建镜像时传入 ARG 变量 VERSION=1.0,应使用命令 docker build _______________________ -t myapp .。

10
判断题

在 Dockerfile 中,ARG 变量在某个 FROM 指令之前定义后,在 FROM 之后的阶段中仍然自动可用。

A

B

11
单选题

Dockerfile 中同时定义了 ENTRYPOINT ["myapp"]CMD ["--help"],运行容器时默认执行的命令是什么?

A

myapp

B

myapp --help

C

--help

D

两者会冲突,只有一个生效

12
多选题

关于 ENTRYPOINT 指令的 exec 格式(ENTRYPOINT ["cmd", "arg"])和 shell 格式(ENTRYPOINT cmd arg),以下说法正确的有哪些?

A

exec 格式作为 PID 1 运行,能正确接收信号

B

shell 格式通过 /bin/sh -c 执行,无法正确接收 SIGTERM

C

exec 格式无法使用环境变量替换

D

shell 格式可以使用环境变量(如 ENTRYPOINT echo $HOME

E

推荐使用 exec 格式以获得正确的信号处理

13
单选题

在 Dockerfile 中,如果只需要将文件从构建上下文复制到镜像中,推荐优先使用哪个指令?

A

ADD,因为功能更强大

B

COPY,因为语义更明确

C

ADD 和 COPY 完全相同,任选即可

D

两个都不使用,使用 RUN cp 命令

14
多选题

相比 COPYADD 指令额外支持哪些功能?

A

自动解压 tar、tar.gz 等压缩文件

B

从远程 URL 下载文件到镜像中

C

复制时保留文件权限和符号链接

D

支持通配符模式匹配

E

复制目录时自动合并目标目录

← 上一个试卷 Dockerfile 基础专题测试
下一个试卷 → Kubernetes 集成专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库