# Docker 初识

# Docker 是什么

Docker 是一个容器化平台,可以把应用和运行环境一起打包,做到「一次构建,到处运行」。

和虚拟机相比,Docker 不是完整模拟一台机器,而是复用宿主机内核,所以更轻量、启动更快。

# 为什么要用 Docker

  • 环境一致:开发、测试、生产运行环境统一,减少「我本地没问题」。
  • 交付更快:应用打包成镜像,发布时直接拉取运行。
  • 资源利用率高:容器比虚拟机更轻,启动秒级。
  • 易于扩展:天然适合微服务、CI/CD、云原生场景。

# 核心概念

# 镜像(Image)

镜像可以理解为只读模板,包含应用代码、依赖、运行时配置。

# 容器(Container)

容器是镜像启动后的运行实例。一个镜像可以启动多个容器。

# 仓库(Registry)

仓库用于存放镜像,比如 Docker Hub、阿里云镜像仓库、公司私有仓库。

# Dockerfile

Dockerfile 是构建镜像的脚本文件,定义了镜像如何一步步生成。

# Compose

Docker Compose 用于定义并管理多个容器(例如:web + mysql + redis)。

# Docker 架构(简版)

  • Docker Client:我们敲的 docker 命令。
  • Docker Daemon:后台服务,真正执行构建/运行等动作。
  • Registry:拉取和推送镜像的远端仓库。

# 一句话理解

  • 镜像是「类」
  • 容器是「实例」
  • Dockerfile 是「构建脚本」
  • Compose 是「多服务编排配置」