首页/ 学科题库/ docker/ Dockerfile 进阶专题测试
docker 模拟试卷 · 技能认证

Dockerfile 进阶专题测试

14 题 30 分钟 难度:★★
  • Dockerfile 进阶 (14题): 多阶段构建、镜像瘦身、缓存利用、安全构建

试卷习题(14 题)

参考答案在文末
判断题
1
判断题

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

A

对

B

错

2
判断题

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

A

对

B

错

3
判断题

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

A

对

B

错

单选题
4
单选题

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

A

ADD,因为功能更强大

B

COPY,因为语义更明确

C

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

D

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

5
单选题

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

A

Dockerfile

B

.gitignore

C

docker-compose.yml

D

.env

6
单选题

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

A

加快镜像构建速度

B

减小最终镜像体积

C

支持同时构建多个镜像

D

自动优化 Dockerfile 指令顺序

7
单选题

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

A

myapp

B

myapp --help

C

--help

D

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

8
单选题

Dockerfile 中 ARG 和 ENV 指令的主要区别是什么?

A

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

B

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

C

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

D

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

多选题
9
多选题

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

A

.git

B

node_modules

C

Dockerfile

D

.env

E

src/

10
多选题

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

A

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

B

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

C

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

D

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

E

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

11
多选题

关于 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 格式以获得正确的信号处理

12
多选题

相比 COPY,ADD 指令额外支持哪些功能?

A

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

B

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

C

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

D

支持通配符模式匹配

E

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

填空题
13
填空题

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

14
填空题

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

参考答案
1.错误 2.正确 3.正确 4.B 5.B 6.B 7.B 8.B 9.A;B;D 10.A;B;C;E 11.A;B;D;E 12.A;B 13.--build-arg VERSION=1.0 14.--from=builder
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 Dockerfile 基础专题测试 下一套 → Kubernetes 集成专题测试