没想到被加精了,现在把精华部分——思寒的评论在一楼.,免得被精华吸引的大伙被我水了。。。

思寒的评论在一楼:

此处开始是原来的水贴。。。

这几天在尝试用 docker 来配置 appium 源码环境和 ELK,虽然还没完成,但感受到了一些 docker 的特点,觉得挺不错的,在这里分享一下。

这个纯属水贴,主要是让对 docker 没有了解的人了解一下 docker 是神马,关于 docker 的原理及深入了解请查看 docker 官方网站的介绍

什么是 docker

docker 是一种基于 linux 容器技术的虚拟化技术。相比虚拟机,容器虚拟化减少了操作系统这个庞大的部分,但相应地,它只能运行 Linux 上的程序。

虚拟技术早就有了,但为何现在 docker 能如此流行

在 docker 出来之前,我们用的虚拟化技术主要是虚拟机。对于个人用途,虚拟机已经能满足大部分需要了。但当遇上需要配置大量虚拟机的环境时,虚拟机就显得比较臃肿了。

下面我们看看在 windows 下用 docker 和用虚拟机搭建一个基于 Ubuntu 的 LAMP 服务器有什么不同:

虚拟机:

  1. 安装虚拟机软件,如 Virtualbox
  2. 建立一个虚拟机,在里面安装 Ubuntu 系统
  3. 安装 apache
  4. 安装配置 MySql
  5. 安装配置 PHP

Docker:

  1. 安装虚拟机软件 boot2docker
  2. 安装 docker
  3. 使用 docker run -d -p 80:80 -p 3306:3306 tutum/lamp 下载并启动 LAMP

使用 Docker ,你节省了:

  1. 数百兆甚至 1G 的空间
  2. 虚拟机的安装镜像(某些时候获取这些镜像所花的时间很可观)
  3. 一个完整的 Ubuntu 系统

所以,docker 相比虚拟机,最大的优势在于快速部署和使用,同时由于 docker 不是完整的虚拟机,它的开启和关闭速度要比虚拟机快的多(一般 10s 内)。

除此之外呢?

Docker 把容器镜像做成了类似代码库的形式,并把它们放到 DockerHub 上供所有人自由下载。从此之后,部署服务器环境变成了在 DockerHub 上寻找合适的镜像并下载使用,我们再也不用按着各种官方文档来慢慢配置服务器啦。

悄悄告诉你: Docker 还支持版本管理呢。

这么好的东西为啥我们都没怎么用过?

是的,对各种环境部署来说, Docker 是一个好东西。但对于对运维领域接触较少的人,没用过 docker 是正常的。因为 docker 运行的程序都没有 GUI 界面,而且 docker 只能运行基于 Linux 的程序(感谢思寒补充,docker 也可以运行 .net 程序,详细请看 Running ASP.NET 5 applications in Linux Containers with Docker)。在这个操作系统界面还要比颜值的时代,没有图形化界面的虚拟化技术普罗大众怎么会感兴趣呢?


↙↙↙阅读原文可查看相关链接,并与作者交流