玩转docker
开篇先论赌
(组词,赌博,....),时刻,每天都在赌!
何为赌?仁者见仁,智者必定又有一番见解,保持沉默,意见保留;
——改变思维模式,Ruiy让赌赢在“思维”!!!;
存在在IT界Ruiy定格,即是 --要,时刻像linux一样思考,像UPS一样行动行动,像Amazon一样微笑;
存在,就需时刻思考,思考怎么赌?才能赢的漂亮!;
趋势就像一匹马,如果在马后面追,你永远都追不上,你只有骑在马上面,才能和马一样的快,这就叫马上成功;
君子必做的2件事(有仇必报,不然恶气难出,伤身!,有恩必报,哪怕肝脑涂地,Ruiy 追捧此),你请别效仿,Ruiy武侠剧看多了,Ruiy更喜大德有度之人,更青睐敬畏高手,更乐意结交志和意投者,你是吗?
引领时代的都是“骗子”:
那些说别人是骗子的人,生活一成不変,生活质量一天比一天差!而那些当年所谓的“骗子”却成了时代的标志!!
(警,)“先知先觉经营者;后知后觉跟随者;不知不觉消费者!借;造船过河不如借船过河。
趋势,无法阻挡;
抉择,要有智慧!
阅人无数不如名师指路,
名师指路不如重叠成功人的脚步!
面对挑战你该怎么办?
请铭记,不要等到明天,明天太遥远,今天就行动,实时赌一把.
扯不下去了,词穷了,哈,好吧;就扯到此,止步吧,该谈正事 了,别玩物丧志,别 学阿斗,乐不思蜀,别....!
---"找准时机适当赌一把,说不定你就成功了!";
现在跟Ruiy一起玩转Docker 轻量虚机:
https://docs.docker.com/installation/centos/ 【docker offical doc】
//by Ruiy
//rui认为,这年头,技术更替TM非常快,技术越玩越简单,越搞越轻巧,越搞越sb,关键 是玩家别被搞成sb了!;
(注,玩大数据谁不开玩spark机器学习神马的,连cloudera都对其清眸了,不然难道就玩玩js,搞搞SQL,弄弄简单c++/java 类对象方法调用 !,玩开源-虚拟化谁不玩kvm,然根据当前事态 将来不会Docker,你还能说你是玩虚机的?你还能混吗?)
docker VM(概词,你懂的)简单区别;
官网的介绍是这样的:
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications....
此处Ruiy也想啰嗦了,不要放过一个文字,标点,(概之就是看东西不要放过任何一个字符,因为每个字符都有它存在的必要性,有它存在的意思,不然它还有必要存在吗?)
一句话往往能够......;
docker与VM主要区别在于性能优势(其中VM每虚拟一个VM,均要跑一个guest OS,而docker不用,每个物理机器能跑上千个Docker,而能虚拟几个VM?,docker仅仅隔离进程,与缩主机共享OS,别的不瞎解析了,Ruiy也就这层次,deepin请移步offical station read offical document,Thanks!!!),部分摘自interNet,加了些水,煮现与此;
其 实看完这句话还是不明白究竟是啥的,下面就慢慢解释。不过长话短说的话,把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的。当 然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(Application Container)。
为啥要用容器?
那么应用容器长什么样子呢,一个做好的应用容器长得就好像一个装好了一组特定应用的虚拟机一样。比如我现在想用MySQL那我就找个装好MySQL的容器,运行起来,那么我就可以使用 MySQL了。
那 么我直接装个 MySQL不就好了,何必还需要这个容器这么诡异的概念?话是这么说,可是你要真装MySQL的话可能要再装一堆依赖库,根据你的操作系统平台和版本进行 设置,有时候还要从源代码编译报出一堆莫名其妙的错误,可不是这么好装。而且万一你机器挂了,所有的东西都要重新来,可能还要把配置在重新弄一遍。但是有 了容器,你就相当于有了一个可以运行起来的虚拟机,只要你能运行容器,MySQL的配置就全省了。而且一旦你想换台机器,直接把这个容器端起来,再放到另 一个机器就好了。硬件,操作系统,运行环境什么的都不需要考虑了。
在公司中的一个很大的用途就是可以保证线下的开发环境、测试环境和线上的 生产环境一致。当年在 Baidu 经常碰到这样的事情,开发把东西做好了给测试去测,一般会给一坨代码和一个介绍上线步骤的上线单。结果代码在测试机跑不起来,开发就跑来跑去看问题,一会 儿啊这个配置文件忘了提交了,一会儿啊这个上线命令写错了。找到了一个 bug 提上去,开发一看,啊我怎么又忘了把这个命令写在上线单上了。类似的事情在上线的时候还会发生,变成啊你这个软件的版本和我机器上的不一样……在 Amazon 的时候,由于一个开发直接担任上述三个职位,而且有一套自动化部署的机制所以问题会少一点,但是上线的时候大家还是胆战心惊。
若果利用容器的话,那么开发直接在容器里开发,提测的时候把整个容器给测试,测好了把改动改在容器里再上线就好了。通过容器,整个开发、测试和生产环境可以保持高度的一致。
此外容器也和VM一样具有着一定的隔离性,各个容器之间的数据和内存空间相互隔离,可以保证一定的安全性。
那为啥不用VM?
那么既然容器和 VM 这么类似为啥不直接用 VM 还要整出个容器这么个概念来呢?Docker 容器相对于 VM 有以下几个优点:
- 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久
- 资源利用率高,一台普通 PC 可以跑上千个容器,你跑上千个 VM 试试
- 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源
为啥相似的功能在性能上会有如此巨大的差距呢,其实这和他们的设计的理念是相关的。 VM 的设计图如下:
VM 的 Hypervisor 需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。而 Docker 的设计图是这样的:
Docker 几乎就没有什么虚拟化的东西,并且直接复用了 Host 主机的 OS,在 Docker Engine 层面实现了调度和隔离重量一下子就降低了好几个档次。 Docker 的容器利用了 LXC,管理利用了 namespaces 来做权限的控制和隔离, cgroups 来进行资源的配置,并且还通过 aufs 来进一步提高文件系统的资源利用率。
其中的 aufs 是个很有意思的东西,是 UnionFS 的 一种。他的思想和 git 有些类似,可以把对文件系统的改动当成一次 commit 一层层的叠加。这样的话多个容器之间就可以共享他们的文件系统层次,每个容器下面都是共享的文件系统层次,上面再是各自对文件系统改动的层次,这样的话极 大的节省了对存储的需求,并且也能加速容器的启动。
<二,Docker for Centos intall use epel yum repo>
https://fedoraproject.org/wiki/EPEL [epel introduce]
note that due to the current Docker limitations, Docker is able to run only on the 64 bit architecture
我们在此提醒下大家,简单玩转一下32bits/64bits优异(别的我就不说了,玩过mongoDB的大家都知道,mongoDB对32bit arch架构机器对其fileSize有限制 ,<=2G,而对64bit大小不上限,只要你的 磁盘允许,docker不支持 32bit,到此,至于别的我就不多说什么了,你懂的!)
我也就 扯扯淡,信的听一耳朵,不屑的,请左眼进,右眼出,或请.....洗洗睡,......;
先这么带一耳朵,(大家都知道Docker 基于LXC玩转,具体,见更具体的....)
简单测试用使用epel yum repo安装 docker-io即可;
终极8步初步玩转Docker 新一代轻量级虚拟化技术.
(再忆使用EPEL repo yum安装docker-io)
01,Docker engine 组成,版本信息
daemon server process manaes all containers,client(remot control daemons),docker 版本 [root@ruiy /]#docker version;
02,searching images
使用命令行搜索image
doocker search <string,imageName>,container image are available on the docker hub register,a cloud-based collection of application;
03,下载Docker container images
docker pull
images in the docker hub register the name you specify is constructed as <username>/<repository>
04,output string;
05,
玩转docker的更多相关文章
- 在Windows中玩转Docker Toolbox
最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker. Docker本身在Windows下有两个软件,一个就是Docker,另一个是Docker ...
- 新书发布《每天5分钟玩转Docker容器技术》
后台不时收到关于纸质版教程书籍的询问,今天终于可以给大家一个交代了. <每天5分钟玩转Docker容器技术>现已在各大书城上架. 比较了一下,目前京东上最实惠:https://item.j ...
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单, ...
- 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)
Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 v ...
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
前面我们安装部署了 Rex-Ray,并且成功配置 VirtualBox backend,今天演示如何创建和使用 Rex-Ray volume. 在 docker1 或 docker2 上执行如下命令创 ...
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库.现在容器已经删除,今天将演示在 docker2 中重新使用这个卷. 在 d ...
- Docker 最常用的监控方案 - 每天5分钟玩转 Docker 容器技术(78)
当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要. 在本章中,我们将讨论几个目前比较常用的容器监控工具和方案,为大家构建自己的监控系统提供参考. 首先我们会讨 ...
- Weave Scope 容器地图 - 每天5分钟玩转 Docker 容器技术(80)
Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解.监控和控制容器.千言万语不及一张图,先感受一下. 下面开始实践 Weave Scope. 安装 执行如 ...
- Weave Scope 多主机监控 - 每天5分钟玩转 Docker 容器技术(81)
除了监控容器,Weave Scope 还可以监控 Docker Host. 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息. host 当前 ...
随机推荐
- 【Unity3D自我记录】解决NGUI通过问题触发事件点
在虚拟现实的游戏开发或当,人们功能操作,人们走一下地面行动.但随后点击界面button什么时候,会不会触发click事件.这是通过点.当然,点击界面button当相同的触发点接地运行操作,样也是点透 ...
- 开发中可能会用到的几个 jQuery 小提示和技巧 (转)
转自:http://www.cnblogs.com/lhb25/p/useful-jquery-tips-and-tricks.html 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人 ...
- table标签
table标签使我们最常用的的标签,在使用table标签时我们要注意一些其属性,早期我们经常使用table标签对其进行页面布局但是现在我们基本不再使用,由此可见table标签也是非常强大的一个工具. ...
- 关于centos6.5系统安装FTP服务和配置的方法
一般在配置服务器的时候,涉及到代码上传,通常都要用到FTP方式. 1.先查看系统是否安装vsftpd: rpm -qa | grep vsftpd 如果出现vsftpd-2.2.2-14......字 ...
- Android Studio 简介
Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发 ...
- Myeclipse中点(.)不出来方法或者属性?
- (转)XML CDATA是什么?
解析数据 XML 解析器通常情况下会处理XML文档中的所有文本. 当XML元素被解析的时候,XML元素内部的文本也会被解析: <message>This text is also pars ...
- android 屏幕适配1 ——dimens.xml的适配
1.如果是才开始做项目,已经有设计图:720*1280 1).默认values文件夹:1dp=1px values/dimens_x.xml: name: x1~x720 value:1px~72 ...
- Oracle中包的创建
包是过程和函数的集合体,包包括创建包和创建包体,创建包的时候在可以定义过程和函数,包体中则具体实现过程和函数. eg: --创建包 create or replace package mypac1 ...
- WARNING OGG-01223 TCP/IP error 111 (Connection refused)
一:问题描述 GGSCI (source_pc) 64> info all Program Status Group Lag at Chkpt Time Sinc ...