Docker 是后端开发绕不开的容器化工具:本地起 MySQL、Redis 等依赖服务靠它,测试环境与部署交付也靠它。本专题把 Docker 的核心概念与动手实践拆成两篇主线文章,这篇地图负责说明适合谁看、学什么、按什么顺序学。

适合谁看

  • 想系统理解 Docker 容器化基础的后端开发者。
  • 需要用 Docker 快速搭建本地开发环境、拉起依赖中间件的同学。
  • 正在准备面试,需要把容器与虚拟机的区别、镜像分层等概念讲清楚的读者。
  • 会照着文档敲命令,但对镜像构建、容器生命周期和数据持久化原理模糊的工程师。

学习重点

  • 容器的本质是共享宿主机内核的隔离进程,理解 namespace 与 cgroup 比背命令更重要。
  • 镜像是只读分层模板,容器是镜像的运行实例,仓库负责镜像的分发与复用。
  • 常用命令围绕四类操作:镜像管理、容器生命周期、日志与进入容器、端口映射。
  • 数据卷解决容器删除后数据丢失的问题;网络解决容器之间、容器与外部的通信问题。
  • docker compose 用声明式 YAML 管理多容器应用,是本地多服务环境的标准做法。
  • Docker 不是生产部署的终点,生产环境还要考虑镜像安全、资源限制、监控与编排(Kubernetes)。

建议阅读顺序

  1. Docker 核心概念总结:先建立容器、镜像、仓库的模型,搞清容器与虚拟机的本质区别、镜像分层与 Dockerfile 最佳实践。
  2. Docker 实战:跟着场景敲命令——起服务、排查、清理,再用 compose 编排多服务,最后容器化一个 Java 应用。
  3. 找一个真实项目练手:把它依赖的 MySQL、Redis 用 compose 拉起,观察日志、数据卷与端口映射,把流程固化成项目自带的 docker-compose.yml。

核心文章

  • Docker 核心概念总结:容器 vs 虚拟机的本质(namespace + cgroup 共享内核)、镜像分层与联合文件系统、Dockerfile 最佳实践、编排的引出。
  • Docker 实战:场景化的常用命令、docker compose 多服务编排、Java 应用容器化完整示例。

高频问题

  • Docker 到底解决什么问题?
  • 容器和虚拟机的本质区别是什么?
  • 镜像、容器、仓库三者是什么关系?
  • 镜像为什么是分层的?分层带来什么好处?
  • 容器删除后数据为什么没了?数据卷怎么解决这个问题?
  • 端口映射和容器网络各自解决什么问题?
  • 如何查看日志、进入容器、停止和删除容器?
  • docker compose 相比逐条 docker run 好在哪里?
  • 多阶段构建为什么能显著缩小镜像体积?

相关专题