Docker 新手入门:从零开始容器化你的应用

Docker 新手入门:从零开始容器化你的应用 如果你的程序在你电脑上能跑,那就把你的电脑也一起发给客户吧。——Docker 之前的世界 写在前面 这篇文章适合谁? 听说过 Docker 但从未用过的开发者 被「在我电脑上明明能跑」折磨过的人 想了解容器化部署但不知道从哪开始的人 读完你将获得什么? 理解 Docker 核心概念(镜像、容器、仓库) 能独立编写 Dockerfile 并构建镜像 能用 Docker Compose 编排多容器应用 能将一个 Web 应用容器化部署 一、Docker 是什么? 1.1 一句话解释 Docker 是一个应用打包、分发、运行的平台。它把你的应用和所有依赖(库、配置、系统工具)打包成一个镜像,然后在任何安装了 Docker 的机器上以容器的形式运行。 1.2 虚拟机 vs 容器 对比项 虚拟机 (VM) Docker 容器 隔离级别 硬件级(Hypervisor) 进程级(内核共享) 启动速度 分钟级 秒级 体积 GB 级 MB 级 性能损耗 10-20% 接近原生 资源占用 高(每个 VM 一个完整 OS) 低(共享宿主内核) 1 2 3 4 5 6 7 8 9 10 11 12 13 ┌─────────────────────────────────┐ ┌─────────────────────────────────┐ │ 虚拟机架构 │ │ Docker 架构 │ ├─────────────────────────────────┤ ├─────────────────────────────────┤ │ App A │ App B │ App C │ │ App A │ App B │ App C │ │ Libs │ Libs │ Libs │ │ Libs │ Libs │ Libs │ │ OS │ OS │ OS │ ├─────────────────────────────────┤ ├─────────────────────────────────┤ │ Docker Engine │ │ Hypervisor │ ├─────────────────────────────────┤ ├─────────────────────────────────┤ │ Host OS │ │ Host OS │ ├─────────────────────────────────┤ ├─────────────────────────────────┤ │ Hardware │ │ Hardware │ └─────────────────────────────────┘ └─────────────────────────────────┘ 1.3 核心三概念 镜像(Image):只读模板,包含运行应用所需的一切。类比:安装光盘 容器(Container):镜像的运行实例。类比:用光盘装好的一台电脑 仓库(Registry):存放镜像的地方。类比:应用商店(Docker Hub) 三者关系: ...

October 1, 2025 · 10 min · 2113 words