R / Richie全部文章 ↑

Linux · 3 分钟阅读

01. 什么是 Docker

2026 年视角:Docker 不再是新生事物,而是云原生时代的"水电气"。新项目几乎默认容器化,但运行时选型已经多元化——Docker、Podman、containerd、Kubernetes 都在场景里。

Docker 基于 Linux 内核的 namespace、cgroup、UnionFS,把进程隔离在"容器"里。容器比虚拟机轻,比裸进程隔离强,正好填补"我想在干净环境跑应用"这个空缺。

容器 vs 虚拟机

维度 容器 虚拟机
启动 秒级 分钟级
镜像体积 MB 级 GB 级
性能 接近原生 受虚拟化开销影响
单机密度 数百 ~ 数千 数十个
内核 共享宿主机 独立

三个核心概念

  • 镜像(Image):只读的文件系统模板,分层存储。
  • 容器(Container):镜像的运行实例,叠加可写层。
  • 仓库(Repository):存放镜像的服务,Docker Hub 是默认公共仓库。

镜像与容器的关系类似"类与实例"。镜像只读,容器在它上面多挂一层可写层,容器删了可写层就没了。

数据要持久化请挂卷(volume 或 bind mount),别写进容器可写层。

镜像分层

  • 镜像由多层只读文件叠加而成
  • 相同层只存一份,节省空间
  • docker pull 命中本地缓存不会重新下载

仓库

  • 官方仓库:Docker Hub(hub.docker.com)
  • 国内镜像:阿里云、腾讯云、网易等
  • 私有仓库:自建 Registry、Harbor、Quay
  • 自动构建:GitHub 关联后 commit 即构建

国内直接拉 Docker Hub 慢是常态,给 daemon 配镜像加速器最直接。

走向 2026

  • 新系统基本预装 containerd;CRI-O 在 OpenShift 等场景常见
  • Podman 已成为 RHEL 系的默认 rootless 方案
  • Docker Desktop 在 macOS/Windows 仍是开发首选(用虚拟机背着的 Linux)
  • Kubernetes 不直接用 docker 命令了,但仍依赖 containerd / CRI 兼容的运行时

参考