00概述Docker

1563 字
8 分钟
00概述Docker

概述#

本系列是 Docker 的学习笔记,路线是「小白变怪兽」:从装好 Docker、跑出第一个容器开始,一路做到能手写一个迷你容器。

Docker 和 Java SE 那类语言笔记不太一样。语言的知识点可以先理解再动手;Docker 是一个完整的应用程序,知识几乎都长在手上——把 docker run 的每个参数敲明白,比背下「容器是什么」的定义有用得多。所以本系列不按概念分章,按关卡推进:每一关都是一条能跑通的操作链,命令随用随讲,成体系的收进 命令速查表。

本系列的运行环境是 macOS,涉及 Linux 与 Windows 差异的地方会单独点出。内容会作为知识节点,串连进后端路线中「部署与运维基础」一段。创作过程使用 AI 辅助以尽量减少错误,如有纰漏欢迎指出。

这套教程适合谁#

面向运维工程师与后端开发人员,也适合任何想把「在我机器上是好的」这个问题彻底解决掉的人。

阅读前需要掌握 Linux 的常用命令(cd、ls、ps、文件权限、标准输入输出)。没有基础的话可以先补一下 Linux 教程,本系列涉及 Linux 的地方只讲与容器有关的部分。

怎么用这套教程#

  1. 边读边敲:每关的正文就是操作步骤,只看不练等于没看。
  2. 关卡独立:每关自包含,跳读不会断档;需要用到上一关的成果时,会在开头交代。
  3. 命令去速查表:正文只在用到时给出命令,系统的整理收进 命令速查表;速查表上的反向链接会显示哪些关卡引用过它。
  4. 保留踩坑:报错与排查过程会留在正文里,它们比顺利跑通的命令更有信息量。

全系列地图#

关阶段内容实操产出
1菜鸟装好跑起来选定运行时并跑出 nginx,在浏览器打开
2菜鸟玩转现成镜像nginx + mysql + redis 三连
3菜鸟写 Dockerfile写出第一个可交付的镜像
4入门数据持久化容器删了,数据还在
5入门容器网络容器之间、容器与宿主机互相说话
6入门Compose 起全栈一条命令起整套服务
7入门Compose 进阶服务按依赖顺序就绪,多环境一套配置
8入门容器里的进程让容器优雅停止,不再硬等满 10 秒
9进阶构建进阶与镜像瘦身镜像从 1GB 压到 100MB,构建也变快
10进阶推送与自动化构建多架构镜像自动构建并推送
11进阶日志与磁盘治理磁盘爆了,能查出是谁吃掉的
12进阶出事了怎么查十分钟内定位到出错的那一层
13进阶容器安全把容器关进笼子
14进阶资源限制与性能一个容器压不垮机器
15怪兽底层原理看懂 veth、iptables 与 overlayfs
16怪兽手写迷你容器自己造一个「Docker」
17怪兽综合实战把真项目部署上线(附 K8s 衔接)
18附录命令速查全系列命令手册

四个阶段#

  1. 菜鸟:跨过陌生感。三个动作对应 Docker 的三个基本对象——跑别人的、用别人的、造自己的。
  2. 入门:让容器真的能承载应用。四件事缺一不可——状态、通信、编排、生命周期。
  3. 进阶:从「能跑」到「能交付」。小、快、自动、查得动、关得住。
  4. 怪兽:解释前面每一步的「玄学」,最后收网到一个真项目。

Docker 是什么#

Docker 是一个开源的应用容器引擎,用 Go 语言 编写,遵循 Apache 2.0 协议开源。

它让开发者可以把应用和依赖一起打包进一个轻量、可移植的容器,然后发布到任何流行的 Linux 机器上运行。容器之间相互隔离,性能开销极低。

这里要先纠正一个流行的直觉:容器不是安全沙箱。它靠 Linux 内核的 namespace 与 cgroups 做隔离,共享宿主机内核,隔离强度远不及虚拟机。把容器当成「轻量虚拟机」来理解,会在涉及权限与逃逸时踩大坑——这一点在第 13 关展开。

核心概念#

  1. 镜像(Image):只读模板,定义了容器的运行环境(操作系统、软件、配置)。它采用分层存储,镜像之间可以共享层,空间与构建速度都因此受益。
  2. 容器(Container):镜像的运行实例,包含应用代码、运行时与依赖,彼此隔离,共享宿主机内核。
  3. Dockerfile:一个文本文件,描述如何自动构建镜像——从哪个基础镜像开始、装什么软件、复制哪些文件。
  4. 仓库(Registry):存放和分发镜像的地方。Docker Hub 是官方公共仓库,Harbor 一类属于私有仓库。

四者的关系是一条链:Dockerfile —构建→ 镜像 —运行→ 容器,而镜像存放在仓库里。

核心优势#

  1. 跨平台一致性:解决「在我机器上能跑」的问题,让开发、测试、生产三套环境保持一致。
  2. 资源高效:直接共享宿主机内核,不必虚拟化整个操作系统,内存与 CPU 开销远小于虚拟机。
  3. 快速部署:容器秒级启动,扩缩容易于自动化。
  4. 隔离性:每个容器拥有独立的文件系统、网络与进程空间。

应用场景#

  1. 微服务架构:每个服务独立容器化,便于管理与扩展。
  2. CI/CD 流水线:与 Jenkins、GitLab CI 等集成,实现自动化构建与测试。
  3. 开发环境标准化:新成员一键启动全套依赖服务(数据库、消息队列等)。
  4. 云原生基础:Kubernetes 等编排工具建立在容器之上。

附录#

关于版本#

Docker 从 17.03 版本起分为 CE(社区版)与 EE(企业版),本系列统一使用社区版 CE。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
00概述Docker
https://hecloud.top/posts/tech/docker/00概述docker/
作者
贺小云
发布于
2026-09-17
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
贺小云
热爱技术与折腾的博客 Dancing with uncertainty. 与不确定性共舞
公告
出于成本考虑,贺云已全面转型Serverless架构
分类
标签
碎碎念
站点统计
文章
91
分类
5
标签
44
总字数
103,192
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0