docker学习 前言

学习 Docker 可以带来什么?

学习 Docker,并不是为了多会一个指令,而是改变你开发、部署与交付软件的方式

解决「环境不一致」的问题

在没有 Docker 之前,开发常见的困扰是:

  • 本机可以运行,服务器不能运行
  • Python / Node / Java 版本不同
  • 第三方套件版本冲突
  • 系统库缺失

Docker 的做法是:

应用 + 运行环境 + 依赖 全部打包在一起

结果是:

  • 在哪里运行,结果都一样
  • 开发、测试、正式环境完全一致
  • 不再需要反复调环境

大幅降低部署与交付成本

传统部署需要:

  • 安装操作系统
  • 配置运行环境
  • 安装依赖
  • 手动调整设定

使用 Docker 后:

  • 一条指令即可启动服务
  • 不依赖服务器原本环境
  • 新服务器可立即上线

这对个人开发者、小团队、教学环境尤其重要。


提高学习与实验效率

Docker 让你可以:

  • 快速尝试新技术
  • 不污染本机系统
  • 用完即删

例如:

  • 同时使用多个 Python 版本
  • 测试不同数据库(MySQL / PostgreSQL / MongoDB)
  • 快速搭建测试环境

提升专业度与工程能力

Docker 已经成为现代软件工程的基础能力

  • Web 后端
  • 数据工程
  • 机器学习
  • DevOps
  • 云端部署

会 Docker,代表你:

  • 能独立完成部署
  • 能参与真实专案
  • 技术栈是「可上线级别」

为进阶技术打基础

Docker 是许多进阶技术的前置知识:

  • Docker Compose
  • Kubernetes
  • CI/CD 自动部署
  • 云原生架构

不懂 Docker,后续学习会出现断层。


什么是 Docker?

一句话理解 Docker

Docker 是一种把应用及其运行环境打包成「容器」的技术,让应用可以在任何地方以相同方式运行。


Docker 的核心概念:容器

Docker 使用的是「容器」而不是「虚拟机」。

容器的特点:

  • 彼此隔离
  • 共享宿主机内核
  • 启动速度快
  • 占用资源少

容器不是完整操作系统,而是:

在同一个操作系统上,创建多个独立运行的应用环境


ocker 与虚拟机的差异

项目 Docker 容器 虚拟机
是否包含完整 OS
启动速度 秒级 分钟级
系统资源消耗
适合场景 应用服务 完整系统

Docker 的基本组成

Docker 主要由三部分构成:

  1. 镜像(Image)

    • 应用的模板
    • 只读
    • 可重复使用
  2. 容器(Container)

    • 镜像的运行实例
    • 有生命周期
    • 可随时销毁
  3. 镜像仓库(Registry)

    • 存放镜像的地方
    • 如 Docker Hub

Docker 的工作流程(概念层面)

  1. 从镜像仓库下载镜像
  2. 使用镜像创建容器
  3. 在容器中运行应用
  4. 停止并删除容器

用生活化方式理解 Docker

你可以这样理解:

  • 镜像 = 食谱
  • 容器 = 按食谱做出来的菜
  • Docker = 标准化厨房
  • 宿主机 = 厨房所在的房子

不管在哪个厨房,只要食谱一样,做出来的菜就一样。