Docker基础概念与框架

简介:

什么是容器?

一种虚拟化方案

操作系统级别的虚拟化

只能运行相同或相似内核的操作系统

依赖于Linux内核特性:NameSpace和CGroups(Control Group)4d92049239ea7c5c5a688d6eae35769f.pngc94ab18680766400fb21c9ac415448c7.png



Docker的目标:

提供简单轻量的建模方式

职责的逻辑分离

快速高效的开发生命周期

鼓励使用面向服务的架构

 

Docker的使用场景:

使用Docker容器开发、测试、部署服务

创建隔离的运行环境

搭建测试环境

构建多用户的平台即服务(PaaS)基础设施

提供软件即服务(SaaS)应用程序

高性能、超大规模的宿主机部署

 

Docker的基本组成:

Docker Client客户端

Docker Daemon守护进程

Docker Image镜像

Docker Container容器

Docker Registry仓库

 

Docker是C/S的架构,Docker的客户端向Docker的守护进程发出请求,守护进程处理完所有的工作并返回结果。Docker容器的创建运行基于Docker的镜像。Docker镜像是一个层叠的只读文件系统,最底层是一个引导系统bootfs,当一个容器启动后,这个容器将会被移动到内存中,而引导文件系统会被卸载。Docker镜像的第二层是rootfs,位于bootfs之上。rootfs可以是一种或多种文件系统,在传统的Linux中,rootfs将会以只读文件系统进行加载,当引导结束并且完成了完整性检查后,才会被切换为读写模式,但是Docker中rootfs永远是只读文件系统的状态,并且Docker使用联合加载技术在rootfs之上加载更多的只读文件系统,在外部称为一个完整的系统。Docker将这样的文件系统称为镜像。Docker的容器启动的时候将会在镜像的最顶层加载一个可读写的文件系统,在Docker中执行的程序就是在这个可写层执行的。当Docker容器启动后,这个可写层是空的,当需要修改文件系统的文件的时候,Docker将会把这个文件复制到可写层,这个可写层的文件副本将会隐藏只读层的对应的文件,这就叫做Docker写时复制。Docker使用仓库来保存用户构建的镜像,仓库分为公有仓库和私有仓库两种,Docker自己提供的Docker公有仓库叫做Docker Hub。

 

Docker容器的相关技术:

 Docker依赖的Linux内核特性

(1)Namespaces命名空间:

编程语言中的命名空间是为了实现更好的封装,也就是代码隔离。

操作系统的命名空间是实现了系统资源的隔离,例如:进程、网络、文件系统。Linux内核实现命名空间的最主要的原因之一就是为了实现轻量级的虚拟化功能。

Docker使用了五种命名空间:

      PID(Process ID)                                              进程隔离

      NET(Network)                                           网络接口管理

      IPC(InterProcess Communication)                  跨进程通信访问管理

      MNT(Mount)                                              管理挂载点

      UTS(Unix Timesharing System)                     隔离内核和版本标识

这些隔离的资源使用CGroups进行管理。

(2)Controlgroups控制组:

CGroups是Linux内核提供的可以限制、记录、隔离进程组所使用的物理资源的机制。由Google的工程师提出。在2004年整合进入Linux kernel 2.6.24。

CGroups提供的功能:

 资源限制

 优先级设定

 资源计量

 资源控制

CGroups赋予Docker的能力:

 文件系统的隔离:每个Docker容器都有自己的rootfs

 进程隔离:每个容器都运行在自己的进程环境中

 网络隔离:容器间的虚拟接口和IP地址都是分开的

 资源隔离和分组:使用CGroups将CPU和内存之类的资源独立分配给每个Docker容器。



 本文转自 棋帅小七 51CTO博客,原文链接:http://blog.51cto.com/xvjunjie/1982394
相关文章
|
2月前
|
存储 持续交付 Docker
Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
41 0
|
5月前
|
机器学习/深度学习 算法 计算机视觉
3D目标检测框架 MMDetection3D环境搭建 docker篇
本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。
124 0
|
6月前
|
存储 Kubernetes 持续交付
Docker 核心概念深度解析:探索容器、镜像和仓库在Docker生态系统中的重要作用和 应用
Docker 核心概念深度解析:探索容器、镜像和仓库在Docker生态系统中的重要作用和 应用
130 0
|
17小时前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
1月前
|
存储 Kubernetes 虚拟化
Docker相关的概念
Docker相关的概念
13 0
|
1月前
|
存储 测试技术 开发者
Docker的基本概念和优势,以及实际应用场景
Docker的基本概念和优势,以及实际应用场景
|
2月前
|
测试技术 持续交付 数据库
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
56 0
|
3月前
|
弹性计算 运维 Java
【Docker容器精解篇 】深入探索Docker技术的概念与容器思想
【Docker容器精解篇 】深入探索Docker技术的概念与容器思想
110 0
|
3月前
|
存储 持续交付 Docker
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
25 0
|
3月前
|
存储 持续交付 Docker
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。