Docker是一个使用容器来方便快捷的建立,部署,运行程序的工具,容器容许开发人员将应用程序的一切打包(镜像),例如库和其余的依赖项,并能够将这个包(镜像)发布出去。经过这样作,开发人员能够尽情将应用程序在其余linux 机器上运行,而且不用去考虑机器的各类配置的不一样。linux
另外一方面,Docker有一点点像虚拟机,可是又不像虚拟机,相比于虚拟机,Docker不须要建立整个虚拟系统,Docker容许应用程序使用和当前所运行的操做系统相同的linux内核,也没有什么硬件虚拟。而且仅仅须要应用程序携带主机上没有的东西,这大大提高了性能而且减小了应用程序的大小docker
最重要的是,Docker是一个开源项目,这意味着每个人均可以给docker作贡献,而且能够去根据本身的需求扩展docker.运维
总而言之,Docker是一个来帮咱们抹平操做系统的配置、环境的差别,让咱们的程序为所欲为的在各个系统快速跑起来的工具。工具
Docker是一个让开发人员和运维人员都会受益的一个工具,它已经成为了许多开发和运维人员的工具链中的一部分了。对于开发人员而言,这意味着咱们没必要再去操心程序最终运行的操做系统的环境等等各类配置了,咱们只须要安心的专心的去写代码就好了。同时咱们可使用Docker给咱们提供的一千多种的镜像,而且镜像中给咱们的程序提供了一部分基础部分,这大大提高了咱们的开发时构建项目的效率。对于运维同窗而言,Docker提供了灵活性,而且因为docker的体积小、开销小。运维也可能不须要去维护特别多的系统了。性能
因此说,开发人员和运维人员均可以来使用Docker。操作系统
上述部分翻译自 https://opensource.com/resources/what-docker翻译
Docker中包括了三个基本概念进程
镜像:开发
镜像为容器的基础,镜像就是一堆只读层的视角部署
容器:
容器的定义和镜像差很少,容器也是一堆层的惟一视角,不一样的是,容器最上边的一层是可读可写的。这里须要注意的是,容器并非指运行态的容器,容器=镜像+读写层
而与此对应的运行态的容器,就是独立的进程空间+运行的进程+可读写层,运行的进程对于文件进行的操做(增长,删除,修改等)针对的是可读写层,而且这个可读写层也是封闭的。
仓库:
仓库是存放镜像的场所
对于Docker的这三个基本概念,后续在对应的章节详解。
文中若有错误,还请斧正!