Docker基础
镜像与容器
Docker 镜像和容器的区别是什么?
一句话原理 Docker 镜像是静态的只读模板(相当于“类”或“安装包”),包含了运行应用所需的代码、库和环境;而容器是镜像的动态运行实例(相当于“对象”或“进程”),拥有独立的文件系统和资源隔离环境。
一句话源码
在操作层面,通过 docker build 或 docker pull 生成镜像,通过 docker run 将镜像实例化为容器,容器在镜像层之上叠加了一个可写的容器层。
一句话项目/场景 在 CI/CD 流水线中,开发人员构建出一个版本固定的 镜像,测试人员将该镜像部署到测试环境运行成 容器,运维人员再将同一镜像部署到生产环境,实现“一次构建,到处运行”。
详细区别对比
| 维度 | Docker 镜像 | Docker 容器 |
|---|---|---|
| 生命周期 | 静态,永久存储(除非手动删除) | 动态,可创建、启动、停止、销毁 |
| 面向对象类比 | 类 | 对象 |
| 物理文件类比 | 安装包 / 光盘 | 运行中的软件 / 正在播放的电影 |
| 读写权限 | 只读,不可修改 | 可读写,修改发生在最上层 |
| 关系 | 是容器的基础模板 | 是镜像的运行实例 |
| 存储结构 | 分层存储,多层共享,节省空间 | 在镜像层之上增加“容器层” |