1、Docker概念

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2、Docker架构

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

Docker系统有两个程序,docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。客户端与服务器端不一定要在一起。客户端可以运行在windows、linux等机器上,然后服务器端必须运行在linux 64bit的操作系统上。

3、Docker应用场景

(1)web应用的自动化打包和发布;
(2)自动化测试和持续集成、发布;
(3)在服务型环境中部署和调整数据库或其他的后台应用;
(4)从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

4、Docker特征

Docker有不少有趣的功能,通过本教程相信你会更好地理解它们。Docker的特性主要包括以下几点:
(1)速度飞快以及优雅的隔离框架;
(2)物美价廉;
(3)CPU/内存的低消耗;
(4)快速开/关机;
(5)跨云计算基础构架。

5、Docker组件与元素

Docker有三个组件和三个基本元素。

5.1 三个组件
Docker Client是用户界面,它支持用户与Docker Daemon之间通信。
Docker Daemon运行于主机上,处理服务请求。
Docker Index是中央registry,支持拥有公有与私有访问权限的Docker容器镜像的备份。

5.2 三个基本要素
Docker Containers负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
Docker Images是一个只读模板,用来运行Docker容器。
DockerFile是文件指令集,用来说明如何自动创建Docker镜像。

docker 和服务的关系 docker和服务器_docker

6、Docker运行原理

运行任何应用程序,都需要有两个基本步骤:
构建一个镜像。
运行容器。

这些步骤都是从Docker Client的命令开始的。Docker Client使用的是Docker二进制文件。在基础层面上,Docker Client会告诉Docker Daemon需要创建的镜像以及需要在容器内运行的命令。当Daemon接收到创建镜像的信号后,会进行如下操作:

(1)第1步,构建镜像

如前所述,Docker Image是一个构建容器的只读模板,它包含了容器启动所需的所有信息,包括运行程序和配置数据。
每个镜像都源于一个基本的镜像,然后根据Dockerfile中的指令创建模板。对于每个指令,在镜像上创建一个新的层面。

一旦镜像创建完成,就可以将它们推送到中央registry:Docker Index,以供他人使用。然而,Docker Index为镜像提供了两个级别的访问权限:公有访问和私有访问。你可以将镜像存储在私有仓库,Docker官网有私有仓库的套餐可以供你选择。总之,公有仓库是可搜索和可重复使用的,而私有仓库只能给那些拥有访问权限的成员使用。Docker Client可用于Docker Index内的镜像搜索。

(2)第2步,运行容器

运行容器源于我们在第一步中创建的镜像。当容器被启动后,一个读写层会被添加到镜像的顶层。当分配到合适的网络和IP地址后,需要的应用程序就可以在容器中运行了。

7、Docker安装相关命令
这里以在unbuntu14.04上安装为例:

//创建docker用户并将其纳入docker这个用户组
#useradd docker -g docker

//更新源
#sudo apt-get update

//安装依赖包
#sudo apt-getinstall linux-image-generic-lts-trusty

//重启
#sudo reboot

//安装docker
#sudo apt-getinstall wget     // 可以通过命令which wget是否已安装
#wget -qO-https://get.docker.com/ | sh   //获取最新版本

//验证安装是否成功
#sudo docker run hello-world

8、Docker服务相关命令

//Docker服务启动|重启|停止
#service docker start    //启动
#service docker restart  //重启
#service docker stop    //停止

//Docker服务对应的版本查看
# sudo docker version

//Docker环境查看
#sudo docker info

//Docker命令帮助
#sudo docker  //查看docker的所有命令
#sudo docker command --help  //查看单个docker命令的帮助,如docker ru--help