--- title: Docker 专题:容器、镜像、仓库、数据卷、网络与容器化部署 description: Docker 面试与容器化学习路线,涵盖容器、镜像、仓库、Docker 引擎、数据卷、网络、常用命令和容器化部署实践。 category: 开发工具 tag: - Docker - 容器 - 部署 sitemap: changefreq: weekly priority: 0.85 head: - - meta - name: keywords content: Docker,容器,镜像,仓库,Docker引擎,数据卷,网络,容器化部署,环境一致性,后端开发 --- Docker 是后端开发非常常见的容器化工具,常用于本地快速启动 MySQL、Redis、Kafka 等依赖服务,也常用于测试环境和部署交付。学习 Docker 时,要把核心概念和命令实践结合起来。 ## 适合谁看 - 想快速理解 Docker 容器化基础的后端开发者。 - 需要用 Docker 搭建本地开发环境、测试环境或依赖服务的同学。 - 准备面试,需要讲清容器、镜像、数据卷、网络和容器与虚拟机区别的读者。 - 已经会复制 Docker 命令,但不清楚镜像构建、容器生命周期和数据持久化的工程师。 ## 学习重点 - 容器解决的是应用运行环境隔离和一致性问题。 - 镜像是静态模板,容器是镜像运行后的实例,仓库用于分发和复用镜像。 - Docker 常用命令要围绕镜像管理、容器生命周期、日志查看、端口映射和进入容器来掌握。 - 数据卷用于数据持久化和宿主机目录挂载,网络用于容器之间和容器与外部服务通信。 - Docker Compose 用于定义和运行多容器应用,适合本地开发环境和简单服务编排。 - Docker 不是万能部署方案,生产环境还要结合镜像安全、资源限制、日志、监控和编排能力考虑。 ## 建议阅读顺序 1. [Docker 核心概念总结](./docker-intro.md):先理解容器、镜像、仓库、Docker 引擎以及容器和虚拟机的区别。 2. [Docker 实战](./docker-in-action.md):通过实际命令练习镜像拉取、容器启动、端口映射、数据卷、日志查看和常见服务部署。 3. 结合一个 Java 项目练习:把应用依赖的 MySQL、Redis 等服务用 Docker 启动起来,再观察日志、数据目录和端口映射。 ## 核心文章 - [Docker 核心概念总结](./docker-intro.md):讲解容器、镜像、仓库、Docker 引擎、Docker 架构、Docker Compose,以及 Docker 和虚拟机的区别。 - [Docker 实战](./docker-in-action.md):通过常用命令和实践场景理解镜像管理、容器管理、服务部署、本地环境搭建和常见排查。 ## 高频问题 - Docker 主要解决什么问题? - 容器和虚拟机有什么区别? - 镜像和容器是什么关系? - Dockerfile、镜像、容器、仓库分别是什么? - 为什么容器删除后数据可能丢失?数据卷解决了什么问题? - 端口映射和容器网络分别解决什么问题? - 如何查看容器日志、进入容器、停止和删除容器? - `docker compose` 适合解决什么问题?和单独执行 `docker run` 有什么区别? - Docker 在开发、测试和部署环境里分别有什么价值? ## 相关专题 - [开发工具知识体系](../) - [Git 专题](../git/) - [Maven 专题](../maven/) - [高可用系统设计](../../high-availability/)