云原生学习笔记(四) 初识Docker

126 阅读4分钟

第六篇:认识 Docker:容器化开发的起点

基于 Docker 官方文档:docs.docker.com/get-started…


一、Docker 是什么?

Docker 是一个开源平台,用于简化应用程序的 开发、交付和运行 过程。

它通过将应用及其依赖项打包进 “容器”(Containers)中,使得应用能够在各种环境中保持一致性地运行。


二、Docker 的核心优势

1. 快速、一致的应用交付

  • 构建 → 测试 → 共享 → 生产部署
  • 消除“在我电脑上能运行”的环境问题

2. 响应式部署与扩展

  • 一次构建,随处运行
  • 支持物理机、虚拟机、公有云、私有云等平台

3. 高效利用资源

  • 启动快、资源占用少、部署密度高
  • 对比虚拟机,容器无需嵌套 Guest OS

三、Docker 架构组件

组件描述
Docker Daemon守护进程,接收并处理请求,管理容器、镜像等
Docker Client用户命令行交互界面,如 docker rundocker build
Docker Desktop本地开发环境集成,包含客户端、守护进程、Compose 等
Docker Registry镜像仓库,默认是 Docker Hub

四、核心对象理解

🧱 镜像(Image)

  • 只读模板,定义容器运行时的应用与依赖
  • 通过 Dockerfile 构建
  • 多层结构,支持缓存与复用

📦 容器(Container)

  • 镜像的运行实例
  • 轻量、隔离、可移植
  • 可启停、销毁、重建

五、Docker 的底层技术原理

技术说明
Namespaces进程、网络、挂载点等隔离,创建“沙箱”运行环境
Cgroups控制 CPU、内存、I/O 等资源分配
OverlayFS实现镜像的分层与复用,支持构建和版本控制

六、现实问题 Docker 如何解决?

问题类型传统开发痛点Docker 的解决方案
环境不一致不同开发/测试/生产环境配置差异大镜像封装整个运行环境
发布流程慢多步骤人工部署镜像 + CI/CD 快速交付
系统资源浪费VM 启动慢,占用多容器轻量、秒级启动
可维护性差依赖冲突、难以复现容器化构建标准化

七、示意图:Docker 架构图

可插入图片(示例:本地环境使用 CLI 操作 Docker Daemon 管理容器/镜像,Registry 拉取/推送镜像等)


八、总结

Docker 是现代云原生应用架构的基石之一,改变了开发、交付和运维流程:

  • 快速一致的交付方式
  • 跨平台的可移植性
  • 自动化与可观测的基础能力

第七篇:深入理解 Docker 基本概念

参考资料


一、什么是容器(Container)?

容器是一种轻量级、可移植、自包含的软件包单元,用于封装应用及其运行时环境。

✅ 特性:

  • 进程隔离:每个容器都运行在独立的 Linux Namespace 中
  • 资源限制:通过 Cgroups 控制 CPU/内存/I/O 等
  • 便携可移植:可以在任何安装了 Docker 的主机上运行
  • 快速启动:秒级启动,适合弹性部署

🧠 容器 vs 虚拟机对比:

特性虚拟机 (VM)容器 (Container)
启动速度几分钟几秒
资源开销包含完整 OS共享宿主机内核
隔离性强(独立内核)中(共享内核 + 隔离)
便携性相对差非常强

二、什么是镜像(Image)?

镜像是构建容器的蓝图或模板,包含了应用及其依赖的所有文件系统层。

🏗 镜像的组成:

  • 多层结构(基于 Union File System)
  • 通常由底层基础镜像(如 ubuntu)+ 应用安装指令构建
  • 每一层都是只读的,可缓存重用

🔧 相关概念:

  • Dockerfile:定义镜像构建过程的文件
  • Image ID:每个镜像的唯一标识
  • Tag:版本标记(如:nginx:1.25.3

三、什么是镜像仓库(Registry)?

镜像仓库是用来存储与分发镜像的服务器。

🎯 分类:

  • 公有仓库:如 Docker Hub
  • 私有仓库:自建或托管(如 Harbor、AWS ECR)

🧩 镜像命名格式:


\[registry\_url/]repository\[:tag]

示例:

  • nginx:latest(默认从 Docker Hub)
  • registry.example.com/myapp:1.0

🔁 操作命令:

  • docker pull nginx:拉取镜像
  • docker push myapp:1.0:推送镜像
  • docker login:登录镜像仓库

四、什么是 Docker Compose?

Docker Compose 是一个用于定义和管理多容器应用的工具。

✍ 配置文件:

使用 docker-compose.yml 文件来声明:

  • 服务(Service)
  • 网络(Networks)
  • 卷(Volumes)

📦 示例配置:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  redis:
    image: redis

🚀 常用命令:

  • docker-compose up:启动应用
  • docker-compose down:停止并清理资源
  • docker-compose logs:查看容器日志

📌 应用场景:

  • 启动多个依赖服务(如 Web + DB)
  • 快速构建本地开发环境
  • 简化部署脚本

五、总结

概念说明
容器应用运行时的隔离环境
镜像容器的构建模板(只读层)
仓库镜像集中存储与共享的位置
Docker Compose定义和管理多容器应用

这些核心概念共同构成了 Docker 平台的使用基础,是迈向云原生开发的第一步。