玩转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 当前 ...
随机推荐
- 打勾显示输入的密码 --EditText与setTransformationMethod
实现目标: 实现原理: 为CheckBox添加一个监听器事件; 实现的源码: package edu.cquptzx.showPassword; import android.app.Activity ...
- 重学《C#高级编程》(对象与类型)
昨天重看了下<C#高级编程>里面的对象与类型一章,发现自己有许多遗漏没懂的地方重新弄清楚明白了 先说说什么是对象吧,我个人的感觉是:在编程的世界里,一段程序就是一个事物的处理逻辑,而对象就 ...
- svn和git比较
svn有哪些优点和缺点? git有哪些优点和缺点? git最突然的优点就是gitflow,开发新的功能都是开一个新分支feature,完成开发新特性,合并到develop分支:提交测试也是新增一个分支 ...
- (转)PHP 的 __FILE__ 常量
今天碰到了PHP的常量__FILE__的问题了. 在网上查了一下.总结了以下规律. dirname(__FILE___) 函数返回的是脚本所在在的路径. 比如文件 b.php 包含如下内容: < ...
- BIND9详解之日志篇
在默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,所以要详细记录服务器的运行状况,需要自己配置服 ...
- PHP preg_match正则表达
在php中preg_match()函数是用来执行正则表达式的一个常用的函数,下面我来给大家详细介绍preg_match使用方法. 函数用法 int preg_match_all ( string pa ...
- javascript代码放置位置对程序的影响
在编写html文档时,javascript可以放置的位置有两个地方<head>或者<body>,但是放置的地方,会对 JavaScript 代码的正常执行会有一定影响.由于 H ...
- Jsp通过JDBC连接到SQL Server2008数据库遇到的几个问题
今天刚刚学jdbc ,之前通过main连到过Sql server 2008现在通过jsp连接sql server 2008,遇到了一些问题,跟大家分享一下,避免少走弯路 一.ClassNotFound ...
- stax解析XML-----Demo
Demo public void staxDemo() throws Exception { XMLStreamReader xml= XMLInputFactory.newInstance().cr ...
- Ehcache入门(一)——开发环境的搭建
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 那么.如何搭建Ehcache的开发环境呢? 1.下载相关的jar包,这 ...