Docker,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。Docker 和 Java 一样,号称“一次构建,一次配置,即可到处运行”(build once, configure once and run anywhere)
Docker 的特点
所有介绍一种新语言、新技术的文章开头都会介绍该技术的出众之处,本篇文章也不例外。作为当前捧得比较红的虚拟化技术,Docker 的特色包括但不仅限于:
飞快的运行速度和优雅的抽象框架廉价低 CPU 和内存使用启动、关闭速度快可以用来作为云计算的基础Docker 有基本组件和元素各三个:
Docker Client:实际上是 docker 的二进制程序,是主要的用户与 Docker 交互方式。它接收用户指令并且与背后的 Docker 守护进程通信。Docker 守护进程:Docker 守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。Docker 仓库:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。同样的,Docker 仓库也有公有和私有的概念。公有的 Docker 仓库名字是 Docker Hub。Docker Hub 提供了庞大的镜像集合供使用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。Docker 仓库是 Docker 的分发部分。Docker 容器:Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。Docker 容器可以运行、开始、停止、移动和删除。每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是 Docker 的运行部分。Docker 镜像:Docker 镜像是 Docker 容器运行时的只读模板,每一个镜像由一系列的层 (layers) 组成。Docker 使用 UnionFS 来将这些层联合到单独的镜像中。UnionFS 允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统。正因为有了这些层的存在,Docker 是如此的轻量。当你改变了一个 Docker 镜像,比如升级到某个程序到新的版本,一个新的层会被创建。因此,不用替换整个原先的镜像或者重新建立(在使用虚拟机的时候你可能会这么做),只是一个新 的层被添加或升级了。现在你不用重新发布整个镜像,只需要升级,层使得分发 Docker 镜像变得简单和快速。DockerFile:进行镜像创建的指令文件。n
Docker 两个主要部件:
Docker: 开源的容器虚拟化平台Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- Docker HubDocker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。Docker 客户端和守护进程之间通过 socket 或者 RESTful API 进行通信。
在学习 Docker 组件之前,先来看一下 Docker 底层到底是由什么组成的:
Namespace:隔离技术的第一层,确保 Docker 容器内的进程看不到也影响不到 Docker 外部的进程。Control Groups:LXC 技术的关键组件,用于进行运行时的资源限制。UnionFS(文件系统):容器的构件块,创建抽象层,从而实现 Docker 的轻量级和运行快速的特性。关于 CGroup 和 namespace,可以参考酷壳的这两篇文章: Docker基础技术:Linux Namespace(上) Docker基础技术:Linux Namespace(下) Docker基础技术:Linux CGroup
Docker 要求 Ubuntu 系统的内核版本高于 3.10,通过 uname -r 命令查看你当前的内核版本:
[root@bogon ~]# uname -r 3.10.0-327.22.2.el7.x86_64Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
Docker 支持以下的 Ubuntu 版本:
Ubuntu Precise 12.04 (LTS)
Ubuntu Trusty 14.04 (LTS)
Ubuntu Wily 15.10
其他更新的版本……
该安装包适用于 Ubuntu,Debian,Centos 等大部分主流 Linux 发行版。
CentOS7支持使用yum安装:
yum update yum install docker 安装完成之后 docker info 可以查看docker 版本信息 docker 本身注册成了一个linux 服务,可以通过以下命令管理 docker 服务: 启动服务 :service docker start 或者systemctl start docker , service docker start 实际上是执行了 /bin/systemctl start docker.service 重启服务 : systemctl daemon-reload 或者 systemctl restart docker.service 停止服务 :service docker stop 须知:
本机安装完成之后 ,本机上就有了 docker 客户端 和 docker 守护进程 ,
docker 客户端 可以向本机的docker 守护进程发起命令请求,
也可以向远程主机的docker 守护进程发起请求。
然后我们用docker 客户端发起命令
1 创建镜像,下载镜像,push镜像等的操作
2 创建容器,启动容器,暂停容器,停止容器。
当然这些命令都是 守护进程 接收 ,然后操作或者转发。
镜像注册中心 是在远程的他人服务器上。
本地可以存储远程下载的镜像,可以存储自己创建的镜像,
可以存储创建镜像的docker file
可以存储容器。
