Docker是一款比传统虚拟机软件更先进的虚拟化工具,可以快速的在不同机器上搭建出一致的开发、调试、运行环境。它的核心概念有镜像、容器和仓库。
镜像(Image)
类似于ISO文件,是一个打包好的运行环境。一个镜像可以是一个linux操作系统,一个nodejs运行环境等等。镜像不可修改。
容器(Container)
利用镜像可以创建出若干个容器(Container),从而运行镜像中预设的软件。如果把镜像比作类,一个容器就是镜像类的一个实例。容器是通过在镜像的基础上添加了一个可修改层实现的。我们可以在这个可修改层上添加新的文件。通过docker commit指令可以将可修改层提交到镜像中,从而生成一个新的镜像。事实上,镜像就是这样一层层糊出来的。
仓库(Repository)
有了镜像之后,可以很方便的在不同的机器上运行一致的环境。为了方便镜像共享,我们需要一个集中的存储、分发镜像的地方,这就是Docker registry。在这上面,有若干个仓库(Repository),每个仓库可以包含多个标签,一个标签代表一个镜像。如ubuntu仓库上有不同版本的标签:latest
、14.04
,16.04
,分别代表不同版本的ubuntu镜像。
one more thing
- 入门教程可以看这个:Docker — 从入门到实践
- docker commit可以理解镜像的构成原理,但实际上,我们是通过定制配置文件
dockerfile
的方式来创建镜像的。 - docker中的容器是与外部环境完全隔离的,如果需要数据共享,需要在容器上挂载数据卷(volume)。数据卷是独立于容器存在的,容器销毁后数据卷仍然存在。
Docker基于Linux系统开发的,在Windows上安装有如下方式:
- 如果是64位Windows 10 Pro(注意关键字,缺一不可:64位、Win10、Pro),并且开启了Hyper-V,可以用官方的Docker for Windows软件直接安装;
- 否则用DockerToolbox软件进行安装。
以上2种方式,都是在Windows上虚拟出了一个linux来,比较纠结。