docker的学习之原理篇

docker的学习篇(1)

学习背景

  因为公司内部项目众多,特别是测试服务器上面的,有时候几个小组的项目都放在同一个tomcat下面。这样一来,一个小组在测试自己的项目迭代的功能时,其他小组就会受影响(其实我不太懂为什么不把项目分开,一个项目一个tomcat,呵呵,可能是没有领导想得长远)。言归正传,特别是修改完bug时要重启项目时,可能其他小组正在测试,那么这个问题就很呵呵了。然后经理开始开展一系列的docker入门培训,so,现在就开启学习之旅。

docker是什么?

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。这段是摘自百度百科的。
  我个人理解的docker就是一个虚拟的迷你版的Linux内核容器。这个容器可以干什么呢?当然是可以在上面部署项目,服务器等等。

为什么要用docker?

  可能有人会问docker有什么优势。这里我先举一个例子:我需要部署一个web服务器到Linux上面。
可能需要和以下几个步骤:

  1. 你需要有一个web服务器容器。所以你要安装web服务器软件( Apache 、 Nginx 等)到Linux上面;
  2. 安装动态Web所需要的语言环境(JAVA,PHP,Ruby,Python等)和数据库( MySQL 等);
  3. 有时为了快速开发还需要安装一些框架(django)等;
  4. 开发,这时候你需要代码的版本控制系统(git,svn等);
  5. 部署到生产环境;
  6. 配置公网的ip地址。
    这一系列下来,累不?还没完!
      运维的同学可能还需要部署多台相同环境的服务器,不论你是部署到虚拟机还是其他服务器里,这些步骤你要重复的做。比如为了负载均衡,要部署相同环境的web服务器。还没完,如果你有其他的web项目又要部署(注:生产环境可能和现有的web还不太一样,例如jdk版本不一样,openJdk和oracle),那还需要一系列的配置。碰到的问题绝对让你头疼不已。

三大痛点搓到要害 :
1. 相同软件环境的多个服务器的安装
2. 不同软件环境服务器的安装
3. 不同硬件环境的相同软件环境的安装

终于,一群聪明人实在受不了天天把时间耗费在无穷无尽的安装配置中。他们发明了 Docker 来解决这些问题。docker确实可以解决以上的问题,下面我进一步说明。

docker的一些概念词

  1. docker image中文称之为镜像(image)。就是一个只读的模板,这个模板有点类似于我们安装操作系统的iso的镜像,你也可以这样理解,docker的镜像就像一张光盘,我们点击安装时他可以给我们安装一个系统环境出来(你的生产环境及其web的部署启动)。
  2. docker file自动安装脚本。在这个docker file里面,你可以写一些你要安装软件的脚步,配置环境的脚步等等。
  3. docker Repository中文称之为镜像仓库,用过maven的同学可能都知道maven也有个Repository,同理,docker也有自己的仓库,在仓库里面有各种的底层镜像,都是官方或者docker的爱好者构建的。
  4. container顾名思义容器的意思。容器可以看成是镜像的一个实例,类似已经安装好的操作系统,上面有你部署好的web服务器等。

docker的镜像
docker的体系和传统虚拟机的体系
最后附上参考的一些内容:

  1. daoCloud
  2. docker的命令总结
  3. docker file的命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值