docker 第一课 —— 从容器到 docker
1. 容器的概念
- 一种虚拟化的解决方案
- 与虚拟机所不同的是,虚拟机通过中间层,将一台或多台独立的机器虚拟运行于物理硬件之上;
- 而容器是直接运行于操作系统内核之上的用户空间;
- 基于上述,容器虚拟化也被称为操作系统虚拟化;
- 由于依赖于操作系统的特性,因此容器只能运行与底层操作系统相同或相似的操作系统
- 而 docker 使用的容器技术则是依赖于 Linux 内核特性:namespace 和 cgroups(control group)
- 因此 docker 上只能运行 Linux 类型系统,而不能运行 windows 系统;
2. Linux 容器技术 vs 虚拟机技术
如下图示为二者的层次化的分别:
- docker,占用更少的磁盘空间;
- 使用虚拟机,不但依赖应用(App)和其依赖的库(bins/libs),还需要包含完整的操作系统(Guest OS),为了运行数 MB 的应用,却需要安装占用几个 GB 的操作系统;
3. docker
- 将应用程序自动部署到容器的一种开源引擎,其使用 go 语言编写;
- 提供简单轻量的建模方式;
- 职责的逻辑分离;
使用场景:
- 使用 docker 容器开发、测试、部署服务;
- 创建隔离的运行环境;
- 搭建测试环境;
- 构建多用户的平台即服务(PaaS)基础设施
- 提供软件即服务(SaaS)应用程序
4. docker 的基本组成
- docker client:客户端; docker daemon:守护进程;
- c/s 架构
- docker image:镜像;
- 镜像是容器的基石;
- 层叠的只读文件系统
- docker container:容器;
- 通过镜像启动;
- 启动和执行;
- 写时复制(copy on write)
- docker registry:仓库
- 公有/私有
- Docker Hub
5. namespace/cgroups
- namespace
- 对于编程语言,实现封装时的代码隔离;
- 对于操作系统,则可实现对系统资源的隔离,系统资源包括:进程、网络、文件系统…
- namespace 包涵一下几种:
- PID(process id),进程隔离;
- NET(network),管理网络接口
- IPC(InterProcess Communication),管理跨进程通信的访问;
- MNT(Mount),管理挂载点;
- UTS(Unix Timesharing System),隔离内核和版本标识;
- Control groups
- 使用 control groups 对隔离的资源进行管理;
- 用来分配资源,实现了:资源限制,优先级设定,资源计量,资源控制;
docker 第一课 —— 从容器到 docker的更多相关文章
- Docker入门 第一课 --.Net Core 使用Docker全程记录
微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的. 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Dock ...
- 认识容器和Docker(一)
前言: 这句话应该是开发人员经常挂在嘴边的吧! “在我的机器上是正常工作的啊,MD,怎么到你这就不行了?” 开发人员就会联想到: 1. 肯定是你环境有问题: 2. 要么就是你个傻*不会用吧: 带着这句 ...
- Docker学习之3——容器
容器(Container) 容器介绍: docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的.容器其实就是从镜像创建的一个实例. 我们可以对容器进行增删改查,容器之间也是相互隔离的.和 ...
- docker常用命令与容器创建
################docker安装##################### Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个 ...
- 【docker专栏7】容器自启动与守护进程停止后容器保活
本文为大家介绍容器自启动以及docker 守护进程挂掉或者docker升级的情况下,如何保证容器服务的正常运行.主要包含三个部分 一.守护进程开机自启 在我们安装docker的时候,介绍过启动dock ...
- Docker自学纪实(二)Docker基本操作
安装docker 以CentOS7为例: 安装:yum -y install docker 启动:systemctl start docker 设置开机自启:systemctl enable dock ...
- 一起玩"Docker"之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...
- 测试docker不同主机间容器互相访问
测试服务器(centos6.5):192.168.16.70 网卡:eth0192.168.16.74 网卡:eth0第一步,分别在2台机器执行: yum install docker service ...
- 初识Docker和Windows Server容器
概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...
随机推荐
- jQuery Easy UI ProgressBar(进度条)组件
ProgressBar(进度条)组件,这个还是挺好玩的.我们在自己做点什么的时候常常能用到,比方上传下载文件.导入导出文档啊.加载网页等等. 应用场景非常多,使用起来还非常easy. 演示样例: &l ...
- Android自己定义效果——随机抽奖
那天逛android开源码的时候,看到一个wheel menu的自己定义效果,就是类似人家的那种转盘抽奖,把人家project看了下.认为非常好玩.可是不想在他上面改,于是就自己想了一个类似的随即抽奖 ...
- jquery2.0.3 全部源码
/*! * Includes Sizzle.js 选择器,独立的库 * http://sizzlejs.com/ */ (function( window, undefined ) { //" ...
- adb-端口被占用解决办法(win)
今天在window下使用adb的时候,提示我说5037端口被占用. * daemon not running. starting it now on port * ADB server didn't ...
- SortedDictionary<TKey, TValue> 类 表示根据键进行排序的键/值对的集合。
SortedDictionary<TKey, TValue> 类 表示根据键进行排序的键/值对的集合. SortedDictionary<TKey, TValue> 中的每 ...
- C# 返回分页查询的总页数
/// <summary> /// 返回分页查询操作的的总页数 /// </summary> /// <param name="count">总 ...
- Mblog 部署手册
准备工作 安装 JDK8 安装图片处理工具:GraphicsMagick1.3.20,下载地址 安装 Maven 准备 IDE (如果你不看源码,可以忽略下面的步骤,直接通过Maven编译war包) ...
- Go语言核心之美 1.5-作用域
变量的作用域是指程序代码中能够有效使用这个变量的范围. 不要将作用域和生命期混在一起. 作用域是代码中的一块区域,是一个编译期的属性:生命期是程序执行期间变量存活的时间段.在此时间段内,变量能够被程序 ...
- DIV+CSS两种盒子模型(W3C盒子与IE盒子)
在辨析两种盒子模型之前.先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS ...
- VPS 上线监控监控脚本
文件地址 https://github.com/yourshell/yisuo-script/blob/master/vpstz/vpsmon.zip https://download.csdn.ne ...