2.docker架构,原理,安装及简单应用

前端之家收集整理的这篇文章主要介绍了2.docker架构,原理,安装及简单应用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本小节主要内容:

1. docker的架构

2. docker安装及应用

3. 底层原理


一. docker的架构

 

 

1. 看官网,docker的架构描述: https://docs.docker.com/get-started/overview/

Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。

 

The Docker daemon(Docker守护程序)

Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。

The Docker client(Docker客户端)

Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令时docker run,客户端会将这些命令发送到dockerd,以执行它们。docker命令使用Docker API。Docker客户端可以与多个守护程序通信。

@H_301_138@Docker registries(Docker仓库)

Docker registries存储Docker映像。Docker Hub是任何人都可以使用的公共注册表,并且默认情况下,Docker已配置为在Docker Hub上查找映像。您可以运行自己的私人注册表。如果使用Docker数据中心(DDC),则其中包括Docker可信registries(DTR)。

使用docker pulldocker run命令时,所需的图像将从配置的注册表中提取使用该docker push命令时,会将映像推送到配置的注册表。

Docker objects(Docker对象)

使用Docker时,您正在创建和使用映像,容器,网络,卷,插件和其他对象。本节是其中一些对象的简要概述。

  • images

一个图像是用于创建一个码头工人容器指令的只读模板。通常,一个映像基于另一个映像,并进行一些其他自定义例如,您可以基于该ubuntu 映像构建映像,但是安装Apache Web服务器和您的应用程序,以及运行该应用程序所需的配置详细信息。

您可以创建自己的图像,也可以仅使用其他人创建并在注册表中发布的图像。要构建自己的映像,您可以 使用简单的语法创建一个Dockerfile,以定义创建映像并运行它所需的步骤。Dockerfile中的每个指令都会在映像中创建一个层。当您更改Dockerfile并重建映像时,仅重建那些已更改的层。与其他虚拟化技术相比,这是使映像如此轻巧,小型和快速的部分原因。

  • container

容器是图像的可运行实例。您可以使用Docker API或CLI创建,启动,停止,移动或删除容器。您可以将容器连接到一个或多个网络,将存储连接到它,甚至根据其当前状态创建新映像。

默认情况下,容器与其他容器及其主机之间的隔离程度相对较高。您可以控制容器的网络,存储或其他基础子系统与其他容器或与主机的隔离程度。

容器由其映像以及在创建或启动时为其提供的任何配置选项定义。删除容器后,未存储在持久性存储中的状态更改将消失。

 

 docker基本要素

镜像: 容器,仓库

 

二.docker的安装及应用

1. docker支持的centos版本

  • Centos7(64-bit)
  • Centos6.5(64-bit)

2. docker安装的前提条件

  • 目前centos仅发行版本的内核支持docker
  • docker运行在centos7上,要求系统为64位,系统内核版本为3.10以上
  • docker运行在centos6.5或更高版本上,要求系统64位,系统内核版本为2.6.32-431或者更高版本

 uname命令打印系统相关信息

uname -r

 查询系统版本

cat /etc/redhat-release

 3. centos6.5及以上的安装docker

第一步. yum install -y epel-release

docker使用EPEl发布,RHEL系的OS首先要确保已经持有EPEL仓库,否则先检查OS的版本,然后安装响应的EPEL包

 

第二步: 安装docker.   
yum install -y docker-io
第三步:查看配置文件
centos 6.5及以上: /etc/sysconfig/docker
centos 7: /etc/docker/daemon.json
有这个配置文件,说明docker是安装成功了
第四步:启动docker
service docker start
第五步: 检查docker是否启动成功
ps -ef|grep docker
docker version

 4. 配置阿里云镜像加速器

第一步:访问国内阿里云的网址
dev.aliyun.com

第二步:登录

第三步: 获取镜像地址
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories

 

 centos6.5配置如下,将加速地址放在other_args里面

 

 centos7,参考阿里云的配置方法

 

 

 

 

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [https://w52p8twk.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker
第四步:重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
第五步:拉取docker镜像helloworld

 

 寻找镜像的流程

 

三. docker的底层原理 

 1. docker是怎么工作的?

 

 

docker是一个client-server结构的系统,Docker的守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器,容器,是一个运行时环境,就是我们前面说到的集装箱 

2. 从结构上看虚拟机和容器的区别

docker将虚拟机的Hypervisor和操作系统应将cpu,内存等拿到. 替换成了Docker Engine. 而这两块恰恰就是虚拟机笨重的地方. 

  docker容器 虚拟机VM
操作系统 与宿主机共享OS

宿主机OS上运行虚拟机OS

存储大小 镜像小,便于存储和传输 镜像庞大(vmdk,vdi等)
运行性能 几乎无额外性能损失 操作系统额外的cpu,内存消耗
移植性 轻便,灵活,适用于linux系统 笨重,与虚拟机技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维者
部署速度 快速,秒级 较慢,10s以上

 

 

 

 

 

 

 

 

 

以上是虚拟机和容器的区别

 

猜你在找的Docker相关文章