docker怎么读 1 Docker的概念、安装和如何开始使用 - Linux - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > 服务器系统 > Linux

docker怎么读 1 Docker的概念、安装和如何开始使用

发布时间:2017-04-12 来源:服务器之家

Docker,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。Docker 和 Java 一样,号称“一次构建,一次配置,即可到处运行”(build once, configure once and run anywhere)

Docker 的特点

所有介绍一种新语言、新技术的文章开头都会介绍该技术的出众之处,本篇文章也不例外。作为当前捧得比较红的虚拟化技术,Docker 的特色包括但不仅限于:

飞快的运行速度和优雅的抽象框架

廉价

低 CPU 和内存使用

启动、关闭速度快

可以用来作为云计算的基础

Docker 组件/原理

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 Hub

Docker 使用客户端-服务器 (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_64

Docker支持以下的CentOS版本:

Docker 支持以下的 Ubuntu 版本:

Ubuntu Precise 12.04 (LTS)

Ubuntu Trusty 14.04 (LTS)

Ubuntu Wily 15.10

其他更新的版本……

Linux安装 # daocloud.io 国内镜像

该安装包适用于 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

可以存储容器。