What Docker?

作者: Mr_Alpha | 来源:发表于2015-12-27 13:10 被阅读305次

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

    首先

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

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

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

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

    其次

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

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

    仓库

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

    镜像和容器

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

    再次

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

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

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

    最后

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

    docke指令集

    相关文章

      网友评论

      本文标题:What Docker?

      本文链接:https://www.haomeiwen.com/subject/gasbhttx.html