核心概念
理解四个核心对象,就掌握了 Docker 的骨架:镜像、容器、数据卷、网络。
镜像(Image)
镜像是只读模板,包含运行应用所需的一切。它分层(layer)存储,相同底层可被多个镜像共享,节省空间。
- 来源:从仓库拉取(
docker pull)或从Dockerfile构建(docker build)。 - 类比:像「安装光盘」——固定不变,可随时复制。
容器(Container)
容器是镜像的运行实例。你在容器内启动进程,容器有自己可写的薄层(基于镜像只读层之上)。
- 生命周期:创建 → 运行 → 停止 → 删除。
- 类比:像「用光盘装好的系统」——光盘(镜像)不变,装好的系统(容器)可改。
💡 容器停止后,内部写入的数据默认随容器删除而丢失。需要持久化就要用到数据卷。
数据卷(Volume)
数据卷是 Docker 管理的持久化存储,独立于容器生命周期,即使容器被删除,卷中数据仍在。
- 与 bind mount(挂载主机目录)不同,卷由 Docker 统一创建和管理,跨平台更可靠。
- 典型用途:数据库文件、配置文件、ROS 工作区数据。
网络(Network)
网络让容器之间、容器与主机之间互相通信。Docker 提供多种驱动:
| 驱动 | 用途 |
|---|---|
bridge(默认) | 单主机内容器通信 |
host | 容器直接共享主机网络栈 |
none | 无网络 |
| 自定义 bridge | 按项目隔离,支持容器名 DNS 解析 |
提示
四者关系一图流
Registry (仓库) │ pull / push ▼ Image (镜像) ──run──▶ Container (容器) │ 挂载 ▼ Volume (数据卷,持久化) │ 接入 ▼ Network (网络,互通)