What Docker?

Docker并不抽象,但是描述起来很抽象。

首先

暂且不说它的底层是如何实现的。只需要知道它比虚拟机先进:

  • 快速交付和部署
  • 高效虚拟化,更高的性能和效率
  • 方便迁徙和扩展
  • 更简单的管理

这里有个表,或许可以帮你:

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

其次

了解几个概念就差不多算入门了:

  • 仓库(Repository)
  • 镜像(Image)
  • 容器(Container)

仓库

仓库是Image的来源。互联网上有很多仓库,有国内的、也有国外的,这里我主要说说正统的——Docker Hub,也是默认的,使用的时候或许需要翻个小墙。
在你做好一切准备工作后,只需要docker pull ,就可以从Docker Hub上获取你想要的Image。当然准备工作需要一顿操作,这里不提,可以稍后看看我的另一篇文章。

镜像和容器

我打算把这两个概念放一块描述。如果把镜像当成一个类的话,容器更像是它new出来的一个又一个对象。镜像可以从仓库中获取,容器则是从镜像中生成。
容器的启动和暂停操作有:docker run docker start docker restart docker stop

再次

让我阐述一下我对docker容器本质的理解。
Docker引擎之上可以运行很多镜像从而形成一个的容器,镜像包括操作系统、安装的软件,但形成的容器本质上还是基于linux内核的。于是,你可以通过连接容器(docker attach )运行shell指令。

好吧,我用一个例子说明。你打算安装一个包含nodejs环境的docker容器,你可以从docker hub上获取操作系统(docker pull ),比如Ubuntu、CentOS等等,然后创建一个容器(docker run ),在连接到你的容器,也就是操作系统里,就可以进行安装nodejs的操作了,安装好nodejs后,你可以通过挂载途径把你的nodejs项目放入docker容器里,运行shell指令让项目运行起来,测试无误后,可以通过迁徙的方法把它部署到其它支持docker环境上。

上面的一系列的操作都可以写进一个Dockerfile的文本里,生成一个属于你自己的Image,分享给其他人,别人下载到本机上,可以通过docker build -t .指令构建改docker镜像到本机上。

最后

不知道你四不四弄清楚或者更了解docker了。如果没,推荐一本书给你;如果弄清楚了,分享我自己收集的一份docker指令集给你,有点粗略,因为还没有整理好。

docke指令集

你可能感兴趣的:(What Docker?)