Docker 专题

发布时间: 更新时间: 总字数:755 阅读时间:2m 作者: 分享 复制网址

Docker 是一种操作系统级别的虚拟化实现方案,依赖于Linux内核特性 NamespaceCgroup 实现。常用应用程序的开发、测试、部署服务。

Docker 简介

什么是 Docker

  • 将应用程序自动部署到容器中
  • 只能运行相同或相似内核的操作系统
  • 基于apache2.0 开源

Docker 的目标

  • 提供简单轻量级的建模方式
  • 职责的逻辑分离
  • 快速高效的开发生命周期(开发,测试,生成相同环境)
  • 鼓励使用面向服务的架构(1个docker 仅运行一个服务)

Docker 的优点

  • 占用空间更小
  • 虚拟机需要模拟硬件行为占用资源

Docker 的使用场景

  • 使用Docker 容器开发、测试、部署服务
  • 创建隔离的运行环境
  • 搭建测试环境
  • 构建多用户的平台及服务(PaaS)基础设施
  • 提供软件即服务(SaaS)应用程序
  • 高性能、超大规模的宿主机部署

Docker 的基本组成

Docker Client -> Docker Engine -> Containerd -> containerd-shim -> runC -> container

Docker Client 客户端

  • C/S 架构
  • 本地远程

Docker Daemon 守护进程

Docker Image 镜像

容器的基石 层叠的只读文件系统

  • add Apache
  • add emacs
  • rootfs
  • bootfs

联合加载系统

Docker Container 容器

通过镜像启动 启动和执行阶段

  • 可写层
  • add Apache
  • add emacs
  • rootfs
  • bootfs

重要技术:写时记录

Docker Registry 仓库

docker query tutorial
docker ps -l
docker commit id learn/ping
docker run learn/ping ping google.com
docker ps
docker inspect <id>
docker images
docker push	learn/ping

Docker 容器相关技术简介

Namespaces 命名空间

  • 编程语言

    • 封装 -> 代码隔离
  • 操作系统

    • 系统资源的隔离
    • 进程、网络、文件系统

系统

  • PID (Process ID) 进程隔离
  • NET (Network) 管理网络接口
  • IPC (InterProcess Communication)管理跨进程通信的访问
  • MNT (Mount) 管理挂载点
  • UTS (Unix Timesharing System)隔离内核和版本标识

Control groups控制组

  • 用来分配资源
  • 来源于 google
  • Linux kernel 2.6.24@2017
  • 作用
  • 资源限制
  • 优先级设定
  • 资源计量
  • 资源控制

Docker 容器能力

  • 文件系统格式:每个容器都有自己的 root 文件系统
  • 进程隔离:每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker 容器
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数