注:因为本人用的是window10系统,docker的版本是Docker Community Edition(Docker CE ).git
按官网的话说,Docker是一个世界领先的容器化平台,它是github上开源的而且跨平台的。github
镜像(Image):相似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都须要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操做系统环境的模板,同理在该镜像上装上Apache软件,就能够称为Apache镜像。docker
容器(Container):相似于一个轻量级的沙盒,能够将其看做一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像建立的应用实例,能够建立、启动、中止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像自己是只读的,容器从镜像启动时,Docker在镜像的上层建立一个可写层,镜像自己不变。服务器
仓库(Repository):相似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,通常会有多个仓库;而仓库是存放镜像的地方,通常每一个仓库存放一类镜像,每一个镜像利用tag进行区分,好比Ubuntu仓库存放有多个版本(12.0四、14.04等)的Ubuntu镜像。 网络
咱们经过一个例子来讲明docker的执行过程。测试
在安装完docker之后,打开cmd,使用docker version命令查看docker版本:this
下面开始安装第一个docker镜像:spa
使用docker images查看镜像列表,显示为空,而后安装安装官方hello-world镜像进行测试。操作系统
安装成功后能够看到镜像的名称、版本、id、最后修改日期、大小blog
而后咱们来跑一下这个镜像看docker的运行过程
注意看这里的执行步骤:
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
1.客户端要拉取一个镜像时,经过docker pull 发送一条命令到本机(DOCKER_HOST)的 Docker daemon。
2. Docker daemon 会先判断本地有没有这个镜像(Images),没有的话话会去仓库(Registry:默认的仓库是 Docker Hub)拉取
3.Docker daemon 拿到镜像后,会新建一个容器(container),把镜像放进去运行
待续