![](https://i-blog.csdnimg.cn/blog_migrate/33caccab948c9281369585650a9fbd3a.jpeg)
Docker(Docker Inc于2013年开源)是一款开发、部署、运行应用的虚拟化平台,其目标是实现轻量级的操作系统虚拟化解决方案;与传统虚拟化方式在硬件层面实现不同,其是在操作系统层面实现虚拟化,直接复用本地主机操作系统。
第一次知道docker这个东西是很久之前了,但只是多见于网上的只言片语,当时觉得困难也没深入去了解,这一次是经过观看直播公开课泡泡Docker基础镜像集发布会开始真正的接触,发现入门也是相当简单。
优缺点
那么,下面说一下到底是docker的什么优点吸引了我?
- 启动速度快,资源占用少
启动容器相当于启动本机的进程,而不是操作系统,加快了启动的速度;区别于虚拟机需要构成完整操作系统的所有资源,其只占用需要用到资源。 - 支持多平台的运行
可以在桌面环境、物理主机、虚拟主机、私有或者公有云中部署,方便应用的部署与测试。 - 易重构,可复用
这一点是深得我心,在跑代码尤其是跑别人开源代码的时候,经常会碰到依赖库版本问题或者依赖库冲突问题,需要花上大量的时间去解决甚至最后放弃;但是有了docker之后,这个问题就好办多了,我们可以基于基础的镜像新建环境,配置代码所需的依赖库,这个过程需要的时间成本就很低了,而且可以保存镜像以备将来之需。 - 隔离性
这一点就不用多说了,和传统虚拟机一样,随便搞,没有问题,不用担心搞坏宿主机。
说了这么多优点了,也来谈谈自己接触之后发现的缺点吧~
- 不支持32位环境
Docker是基于Linux 64bit,故无法在32bit的Linux、Windows、Unix环境下使用。 - 数据不可留存
容器会随着进程的停止而销毁,运行中未留存到本地的数据(比如log文件)将会丢失,如果想长久保留,可以通过挂载本地硬盘实现。
![](https://i-blog.csdnimg.cn/blog_migrate/08aff5bb4c89ee8fd1db3918c3c80292.png)
相关概念
下面再简单介绍一下docker相关概念,方便入门学习。
Image(镜像):
在Docker的术语中,一个只读层称为镜像,而且是永久不会变的,可以类比为C++中的类;
Container(容器):
容器是在镜像的基础上再增加一个可读写的层,可以类比为C++中的类实例;
到这里,做个总结,上面主要讲了docker的产品定义、优缺点、重要概念,可以算是对docker的基本了解,接下来我将会使用paopaorobot/dvo镜像写一篇实例,带入docker基本的操作方法;
参考:
[1]. Docker中文文档
[2]. Docker Documentation
[3]. docker容器和镜像区别