第三篇:Docker容器架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

Docker Daemon是docker最核心的守护进程,也就是Server端,Server端可以部署在远程,也可以部署在本地,因为Server端与客户端(Docker Client)是通过Rest API进行通信。

docker CLI 实现容器和镜像的管理,为用户提供统一的操作界面,这个 客户端提供一个只读的镜像,然后通过镜像可以创建一个或者多个容器(container),这些容器可以只是一个RFS(Root File System),也可以是一个包含了用户应用的RFS。容器在docker Client中只是一个进程,两个进程是互不可见的,从而实现容器之间的个隔离。

用户不能与server直接交互,但可以通过与容器这个桥梁来交互,由于是操作系统级别的虚拟技术,中间的损耗几乎可以不计。

docker容器和虚拟化实现原理

左图是虚拟机的工作原理图,着重体现在硬件层面进行虚拟化,实现对硬件资源进行抽象,对性能的损耗比较大,而且还会占用大量的内存资源

有图是Docker的工作原理图,属于OS级别的虚拟化,kernel通过创建多个镜像来隔离不同的app进程,由于kernel是是共享,本身linux image也不大,性能损耗几乎可以不计,而且内存占用也不大,大大节约了设备成本。

原文地址:http://blog.51cto.com/liuleis/2067566

时间: 2024-10-31 18:24:25

第三篇:Docker容器架构的相关文章

Docker系列-第五篇Docker容器数据卷

1.是什么 在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作 . 容器中的管理数据主要有两种方式 : 数据卷 ( Data Volumes ) : 容器内数据直接映射到本地主机环境: 数据卷容器( Data Volume Containers ) : 使用特定容器维护数据卷. 一句话:有点类似我们Redis里面的rdb和aof文件 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的

Docker教程系列三:Docker容器操作

1查看容器 l  查看正在运行容器: docker ps l  查看所有的容器(启动过的历史容器): docker ps –a l  查看最后一次运行的容器: docker ps –l l  查看停止的容器 docker ps -f status=exited 2创建与启动容器 l  创建容器常用的参数说明: l  创建容器命令:docker run l  -i:表示运行容器 l  -t:表示容器启动后会进入其命令行.加入这两个参数后,容器创建就能登录进去.即分配一个伪终端. l  --name

Docker学习笔记(三)Docker容器相关技术

轻量级虚拟化技术 命名空间:namespace,隔离系统资源,进程.网络.文件系统等隔离 控制组:cgroups,为容器技术而生,分配资源,用来限制.记录.隔离进程资源使用. 命名空间隔离: 进程pid:进程隔离 网络:管理网络接口 ipc:管理跨进程的访问 文件系统mount:管理挂载点 uts:隔离内核和版本标识. control groups:将cpu和内存资源独立分配给每个资源. 资源限制 优先级设定 资源计量 资源控制

centos7下安装docker(19容器架构)

What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成container 2.虚拟机:AWS,Azure,VMware,华为,公有云,私有云等 对容器有了解的人都会觉得容器和虚拟机很像,因为二者都是为应用提供封装和隔离. 1.系统层面:容器本质上是单个应用程序,而虚拟机则需要更多的资源来运行整个操作系统,虚拟机上可以运行容器,其实我们也可以把容器看作成一个

Prometheus Operator 架构 - 每天5分钟玩转 Docker 容器技术(178)

本节讨论 Prometheus Operator 的架构.因为 Prometheus Operator 是基于 Prometheus 的,我们需要先了解一下 Prometheus. Prometheus 架构 Prometheus 是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus 提供了数据搜集.存储.处理.可视化和告警一套完整的解决方案.Prometheus 的架构如下图所示: 官网上的原始架构图比上面这张要复杂一些,为了避免注意力分散,这里只保留了最重要的组件. Pr

Docker容器基础篇——镜像、容器

一.docker简介 1. 什么是容器? 容器技术是一种虚拟化的方案,与传统虚拟机不同,传统虚拟机是通过中间层将一台或多台独立的机器虚拟运行于物理硬件之上,而容器则是直接运行于操作系统内核之上的用户空间.因此,容器虚拟化也被称为操作系统虚拟化. Docker容器与传统虚拟机的比较,如下表 特性 Docker 虚拟机 启动速度 秒级 分钟级 性能损耗 共享kernel几乎没有性能损耗 通过对于硬件层的模拟,增加了系统调用链路的环节,有性能损耗 系统支持量 上千个 几十个 隔离性 资源限制 完全隔离

虚拟化技术—docker容器—安装篇

核心概念 1. 镜像 是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器 镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等操作每个容器都是相互隔离的. 3. docker仓库 存放镜像的一个场所仓库分为公开仓库和私有仓库. 最大的公开仓库是Docker hubhub.docker.com国内公开仓库http://dockerpool.com/ 一.安装 centos6 上安装(6.5之前版本需要升级一下 yum

Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)

上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点. Node 是 Pod 运行的地方,Kubernetes 支持 Docker.rkt 等容器 Runtime. Node上运行的 Kubernetes 组件有 kubelet.kube-proxy 和 Pod 网络(例如 flannel). kubelet kubelet 是 Node 的 agent,当 Scheduler 确定在某个 Node 上运行 Pod 后,会将 Pod 的具体配置信息(

通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)

为了帮助大家更好地理解 Kubernetes 架构,我们部署一个应用来演示各个组件之间是如何协作的. 执行命令 kubectl run httpd-app --image=httpd --replicas=2 等待一段时间,应用部署完成. Kubernetes 部署了 deployment httpd-app,有两个副本 Pod,分别运行在 k8s-node1 和 k8s-node2. 详细讨论整个部署过程. ① kubectl 发送部署请求到 API Server. ② API Server