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

第六篇:认识 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)

🧩 镜像命名格式:

css 复制代码
\[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)

📦 示例配置:

yaml 复制代码
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 平台的使用基础,是迈向云原生开发的第一步。


相关推荐
伤不起bb3 小时前
Kubernetes 服务发布基础
云原生·容器·kubernetes
别骂我h6 小时前
Kubernetes服务发布基础
云原生·容器·kubernetes
要开心吖ZSH6 小时前
微服务架构的演进:迈向云原生
java·微服务·云原生
dyj0956 小时前
Rancher Server + Kubernets搭建云原生集群平台
云原生·rancher
weixin_399380697 小时前
k8s一键部署tongweb企业版7049m6(by why+lqw)
java·linux·运维·服务器·云原生·容器·kubernetes
慌糖16 小时前
微服务介绍
微服务·云原生·架构
阿里云云原生1 天前
阿里云可观测 2025 年 6 月产品动态
云原生
阿里云云原生1 天前
30 秒锁定黑客攻击:SLS SQL 如何从海量乱序日志中“揪”出攻击源
云原生
&如歌的行板&1 天前
如何在postman中动态请求k8s中的pod ip(基于nacos)
云原生·容器·kubernetes
ithadoop1 天前
Spring生态:云原生与AI的革新突破
人工智能·spring·云原生