1.Docker是什么?

Docker 是一个开源的容器化平台,用于快速打包、分发和运行应用程序。它通过将应用及其依赖封装在轻量级的容器中,实现环境隔离与跨平台一致性。

核心概念

  1. 镜像(Image)

    • 类似虚拟机的快照,包含应用程序、依赖库和配置文件的静态模板。
    • 例如:一个包含 Node.js 和项目代码的镜像。
  2. 容器(Container)

    • 镜像的运行实例,轻量级且可快速启动/停止。
    • 多个容器共享宿主机内核,但彼此隔离。
  3. 仓库(Registry)

    • 存储和分发镜像的中心仓库,如 Docker Hub(公共)或私有仓库。

Docker 的优势

  1. 环境一致性

    • 应用及其依赖被打包成容器,确保在任何环境中运行结果一致。
  2. 高效轻量

    • 容器共享宿主机资源,相比虚拟机启动更快、资源占用更低。
  3. 易于部署

    • 通过简单的命令(如 docker run)即可启动应用,无需手动配置环境。
  4. 弹性扩展

    • 可快速复制容器实例以应对高负载,支持微服务架构。

容器化技术的核心价值

  • 标准化交付:将应用及其依赖打包成镜像,确保环境一致性
  • 轻量级运行:共享宿主内核,启动时间以秒计算(对比虚拟机分钟级)
  • 快速迭代:镜像分层机制支持增量更新,构建时间显著缩短

容器化 vs 传统部署对比

维度 传统部署 容器化部署
环境配置 手动安装依赖 镜像预配置
启动速度 分钟级 秒级
资源占用 高(需独立OS) 低(共享内核)

Docker vs 虚拟机

虚拟机架构

物理机 → Hypervisor → 虚拟机 → 操作系统 → 应用  

Docker架构

物理机 → Docker引擎 → 容器 → 应用(共享宿主OS内核)  

核心区别

  • 隔离性:虚拟机隔离OS,容器隔离进程
  • 性能损耗:虚拟机≈10%,容器≈1%
  • 资源占用:虚拟机GB级,容器MB级

Docker生态系统

核心组件

  1. Docker Engine

    • 服务端守护进程(dockerd)
    • CLI客户端(docker命令行工具)
  2. Docker Hub

    • 全球最大镜像仓库(200万+官方/社区镜像)
    • 支持镜像托管、自动化构建与协作
  3. 周边工具链

    • Docker Compose:多容器编排
    • Docker Swarm:集群管理
    • Kubernetes:容器编排领域事实标准

典型应用场景

  1. Web服务部署:Nginx/Node.js/PHP等Web应用
  2. CI/CD流水线:代码构建→测试→部署全流程容器化
  3. 微服务架构:服务解耦与独立扩展(如电商平台的订单/支付服务)
  4. 开发环境隔离:为不同项目提供独立的运行环境

快速入门示例

# 运行第一个Docker容器(以Nginx为例)
docker run -d -p 80:80 --name my-nginx nginx:latest

执行结果解析

  • -d:后台运行容器
  • -p 80:80:映射宿主80端口到容器80端口
  • nginx:latest:拉取最新版Nginx镜像

本章后续内容预告

  1. 第二节:为什么选择Docker?(环境一致性、资源优化、微服务支持)
  2. 第三节:Docker安装全平台指南(Windows/macOS/Linux)

📌 提示:建议动手实践 docker run hello-world 命令,体验容器化技术的极简特性。遇到问题可参考 Docker官方文档 或评论区提问!