诗和远方

Docker

ocker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。

只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

传统方式把IIS、Apache、.net、php环境安装在一个服务器调试很久,还会造成一些冲突。比如IIS和Apache访问端口冲突。常规方法是在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小。

开发软件的时候有的人用Ubuntu、有的用centos,最终汇总的时候会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。


Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机。

它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动、虚拟处理器、网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存、CPU 资源。

而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。


空白的服务器上,搭建 FTP 服务器,配置 FTP, Java 环境,安装 MySQL, 配置MySQL,安装 Tomcat, 配置 Tomcat, 复制 J2EE 应用, 导入 SQL语句,开放对应端口,等等等等事情。这个过程不仅冗长,而且容易出错,只要有任意一个环节出错了,你都没法看到期望的效果。

服务器虚拟机环境配置麻烦,所以docker来了。

有了 Docker ,你只需要一行脚本

docker run -d -p8080:8080 how2j/tmall

J2EE应用就起来了。

docker是容器,放啥呢?放应用。

应用是啥?一个网站、一个程序、一个系统都是应用。

从此不用配环境了,不用统一环境了,因为docker都打包好了。

开一个docker容器还不到一秒,重启才三秒。

docker更轻量,更简单,更快速,更好玩。


Java号称“一次编译,到处运行”,因为java虚拟机解决平台的兼容性问题,所以有java虚拟机的地方就能跑java代码;

Docker是:“一次封装,到处运行”,因为docker决绝了应用环境的问题,安装了docker的平台就能跑“docker包”,这样就决绝了“开发环境能跑,一上线就崩”的尴尬。


当你需要在容器内运行自己的应用(当然可以是任何应用),Docker 都提供了一个基础系统镜像作为运行应用时的基础系统。也就是说,只要是 Linux 系统上的应用都可以运行在 Docker 中。

可以在 Docker 里面运行数据库吗?当然可以。

可以在 Docker 里面运行 Node.js 网站服务器吗?当然可以。

可以在 Docker 里面运行 API 服务器吗?当然可以。

Docker 并不在乎你的应用程序是什么、做什么,Docker 提供了一组应用打包、传输和部署的方法,以便你能更好地在容器内运行任何应用。

Docker 有一个傻瓜化的获取软件的方法,Docker 后台会自动获得环境镜像并且运行环境。

如果你想快速在你的笔记本上运行一个 MySQL 数据库,或者一个 Redis 消息队列,那么使用 Docker 便可以非常容易地做到。例如 Docker 只需要一条命令便可以运行 MySQL 数据库:docker run -d -p 3306:3306 tutum/mysql

正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境。Docker 有一个傻瓜化的获取软件的方法,Docker 后台会自动获得环境镜像并且运行环境。

虚拟机的粒度是“虚拟出的机器”,而 Docker 的粒度则是“被限制的应用”,相比较而言 Docker 的内存占用更少,更加轻量级。

Related
操作系统发展简史2019年06月20日
Linux内核邮件列表LKML2019年06月19日
Source Insight2019年06月14日
Docker2019年06月06日
消息摘要2019年06月05日
命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)2019年05月28日
为什么串口传输速度比并口快?2019年04月22日
SATA硬盘和SAS硬盘2019年04月21日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:1996
  • 页面总数:1
  • 分类总数:17
  • 标签总数:515
  • 评论总数:0
  • 浏览总数:519194
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML