全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 12 道配套习题

Dockerfile 基础专题

专题说明

学习Dockerfile的核心指令语法、构建流程、工作目录设置与端口声明,掌握镜像构建基础。

学习目标

  1. 掌握Dockerfile 语法结构
  2. 掌握构建自定义镜像
  3. 掌握WORKDIR 与 ENV 指令
  4. 掌握EXPOSE 端口声明
  5. 能够独立完成Dockerfile 基础相关实际场景的操作与排错

学习内容

  • Dockerfile 语法结构
  • 构建自定义镜像
  • WORKDIR 与 ENV 指令
  • EXPOSE 端口声明

学习建议

  1. 按照知识点排列顺序循序渐进,先理解概念再动手实践
  2. 每学完一个知识点后完成对应的配套练习题巩固
  3. 遇到问题时优先查阅官方文档,结合容器日志排查

📝 配套习题(12 题)

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

Dockerfile 中的 CMD 指令在镜像构建时执行。

A

B

2

Docker 构建镜像时,会将构建上下文中的所有文件发送给 Docker Daemon,即使 Dockerfile 中没有引用这些文件。

A

B

3

Dockerfile 中使用 ENV APP_HOME=/app 设置的环境变量,在容器运行时可以通过 echo $APP_HOME 获取到。

A

B

单选题
4

Dockerfile 中必须存在且只能出现一次的指令是?

A

RUN

B

CMD

C

FROM

D

COPY

5

Dockerfile 中的 RUN 指令在什么时候执行?

A

容器启动时

B

镜像构建时

C

容器停止时

D

镜像拉取时

6

使用 docker build -t myapp:1.0 . 构建镜像时,末尾的 . 代表什么?

A

当前目录下的 Dockerfile 作为构建上下文

B

输出到当前目录

C

使用当前目录名称作为镜像名

D

表示使用最新的基础镜像

7

Dockerfile 中的 EXPOSE 80 指令的作用是什么?

A

将容器的 80 端口映射到宿主机的 80 端口

B

声明容器监听的端口,起到文档说明的作用

C

打开容器的防火墙允许 80 端口访问

D

自动在宿主机上开放 80 端口

8

Dockerfile 中连续执行以下指令后,COPY app.jar . 会将文件复制到哪个路径?

text
WORKDIR /opt
WORKDIR app
COPY app.jar .
A

/app.jar

B

/opt/app.jar

C

/opt/app/app.jar

D

./app.jar(构建上下文中)

多选题
9

docker build 命令支持以下哪些参数?

A

-t 指定镜像名称和标签

B

-f 指定 Dockerfile 路径

C

--no-cache 禁用构建缓存

D

--build-arg 传入构建参数

E

-d 在后台构建

10

以下关于 Dockerfile 中 EXPOSE 指令的说法正确的有哪些?

A

一个 Dockerfile 中可以有多条 EXPOSE 指令

B

EXPOSE 80/tcp 可以指定协议类型

C

EXPOSE 会实际打开端口并允许外部访问

D

docker run -P 会自动映射 EXPOSE 声明的端口

E

EXPOSE 声明的端口在容器内必须实际有服务监听

填空题
11

要将构建上下文中的 app.jar 文件复制到镜像的 /app/ 目录下,应使用的 Dockerfile 指令是 ____________

12

在 Dockerfile 中,要让环境变量 FULL_PATH 的值为 $BASE_DIR/app,正确的写法是 ENV FULL_PATH ____________

参考答案
1.错误 2.正确 3.正确 4.C 5.B 6.A 7.B 8.C 9.A;B;C;D 10.A;B;D 11.COPY app.jar /app/ 12.$BASE_DIR/app
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 Docker 基础概念专题
下一个专题 → Dockerfile 进阶专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码