Docker 镜像和容器的区别?¶
一、类比¶
- 镜像(Image):类,只读模板。
- 容器(Container):对象,镜像运行时的实例。
一个镜像可以启动多个容器。
二、镜像¶
- 只读,分层存储。
- 每层是文件系统的变更(如 apt install、COPY 代码)。
- 通过 Dockerfile 构建。
三、容器¶
- 镜像启动后的运行实例。
- 在镜像层之上加一个可写层,容器内修改都在这层。
- 停止/删除容器,可写层丢失;数据要挂载 volume。
四、生命周期¶
五、核心概念¶
| 概念 | 作用 |
|---|---|
| 镜像层 | 只读,分层复用 |
| 容器层 | 可写,每次启动新建 |
| Volume | 数据持久化 |
| Network | 容器间通信 |
六、为什么轻量¶
- 共享宿主机内核,不需要 Guest OS。
- 镜像分层,相同层只存一份。
- 启动快(秒级),比 VM 小得多。
面试加分
- Docker vs VM:VM 是硬件级虚拟化,Docker 是进程级隔离,共享内核。
- 镜像不要太大:用多阶段构建、
.dockerignore、基础镜像选 slim。