Docker架构

选中文字可对指定文章内容进行评论啦,→和←可快速切换按钮,绿色背景文字可以点击查看评论额。

学习是一辈子的事情,架构的学习,如果有一幅简明扼要的图,那么我们学习起来会事半功倍。

Docker architecture

从上面的图可以看出,docker主要分为三个部分:Docker Client, Docker Host,  Docker Registry

 

Docker Host

首先我们看看Docker Host, 它包括三个部分,分别是Docker守护进程——Docker daemon,Docker镜像——Docker Images,Docker容器——Docker Container;
 

Docker daemon

Docker守护进程,有的地方也称为Docker引擎——Docker Engine。它的作用类似于黑社会的大boss,主要运行在后台,管理着Docker的镜像,Docker的容器,Docker的网络以及Docker的存储卷。Docker可以与其他守护进程一起管理Docker的服务,对外暴露一些RestAPI,其他守护进程或者命令客户端可以通过这些API与它通信。


Docker Images

Docker镜像是一个只读模板,模板包含创建Docker容器的说明。这里可以类比我们编程时候的类与实例之间的关系。镜像对应着类和容器对应着实例。学习Docker镜像应该从三个方面入手:

  1. Docker镜像可以重用和继承。
  2. Docker镜像的命令如何使用。
  3. Docker镜像如何构建。

这里我们展开来说,比如有一个CentOS基础镜像,包含Java8+Maven+Tomcat;如果我现在的需求是增加一个redis,那么我可以将redis添加到这个基础镜像,然后重新构建一个新的镜像,所以说镜像是可重用和继承的。

构建镜像的方法是通过一个Dockerfile的文件进行构建,此文件包含一些构建镜像的说明和命令,然后通过docker build . 进行构建。

想要知道docker镜像的一些基本命令,可以通过 docker images --help

 

Docker Container

Docker容器是一个运行的Docker镜像实例。学习Docker容器也需要从两方面入手:

  1. 基本的Docker容器命令使用
  2. 向Docker容器传递参数或者配置Dockerfile文件,让运行的Docker对外暴露端口以及与其他容器通信,配置存储卷等

要想知道docker容器的一些基本命令,可以通过docker container --help

从上面我们可以简单的看出一些启动容器,停止容器,移动容器,删除容器等,这些是我们未来学习的重点。

 

最后总结一些什么是Docker主机,所谓Docker主机就是Docker安装的那台物理机器。Docker主机由Docker守护进程,Docker镜像,Docker容器,网络以及存储组成。



Docker Client– Docker CLI

Docker客户端使用Docker命令行与Docker守护进程进行通信。前面我们使用的命令都是客户端通过RestAPI接口与Docker守护进程进行通信的例子。Docker客户端可以同超过一个以上的守护进程进行通信。

 

Docker Registry

Docker注册中心可以理解为存储Docker镜像的中央仓库。这个很好理解,Maven中央仓库是存储jar包,而Docker中央仓库是存储镜像的。

 

Docker-Compose

从字面意思理解是Docker组合,猜想就是一个管理多个docker的啥东西。其实它的作用是定义和运行多容器的docker应用程序。这里记住一个命令:

docker-compose --help

以及一个文件:

docker-compose.yml

文件内容定义容器,命令用来运行和管理容器。

 

还有其他一些组件,比如Docker Machine 和 Docker Swarm Mode 等,我们需要使用的时候才详细介绍。

 

版权声明:著作权归作者所有。

相关推荐

CentOS 7安装Docker环境

在CentOS上有两种方式安装Docke:https://get.docker.com/联网脚本安装使用yum安装联网脚本安装1、更新yum源sudo yum update 2、联网下载脚本安装curl -sSL https://get.docker.com/ | sh 使用yum安装1、更新yum源sudo yum 

GPU架构学习资源

这里收藏了gpu学习的网站,pdf等等资源:http://courses.cms.caltech.edu/cs179/http://www.amd.com/Documents/GCN_Architecture_whitepaper.pdfhttps://community.arm.com/graphics/b/bloghttp://cdn.imgtec.com/sdk-documentation/

Go语言日志框架logrus封装

logrus在github上是一个star数比较高的go日志框架,简单封装如下:package log import ( "fmt" "github.com/Sirupsen/logrus" "runtime" "strings" ) var logger = logrus.New() // 封装logrus.Fields type Fields logrus.Fields func SetLog

Centos 7搭建Docker环境

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。 卸载旧版本旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本: sudo yum remove

模式结构

模式的结构一般分为是三个部分:需求(Forces)结果上下文(Resulting Context)相关模式(Related Patterns)说明如下:需求是必须解决的问题,它描述了必须解决的问题和围绕这个特定问题的上下文环境。需求有时候会发生冲突,必须予以取舍,选择最重要的需求来解决。结果上下文是采用模式后可能带来的后果,它描述了采用这个模式后的结果,它包含三个部分: 好处,弊端和问题。相关模式

JPA架构(JPA - Architecture)

今天我们来学习一下JPA的架构,首先问一个问题,大家学习理解一个架构有什么好的方法呢?对于我自己来说,我觉得架构图是理解架构最好的方式以上就是JPA的架构图,我们可以知道,JPA的主要部分包括五个类: 第一个类EntityManagerFactory,我们可以称为实体管理器工厂类,很显然,这个类的作用是创建和管理多个实体管理器类,因此,我们可以大胆猜测,实体管理器工厂类和实体管理器是一对

单节点ElasticSearch 7 docker-compose.yml

Elasticsearch 7 集群启动在开发环境,往往只需要启动单节点的ElasticSearch进行开发。对于ElasticSearch 6,启动一个单节点集群和多节点集群是相同的。从ElasticSearch 7开始,首次启动集群,需要在集群的主节点中明确定义初始主节点集(即设置参数cluster.initial_master_nodes),集群启动过程中做一个引导启动检查,称为bootst

微前端架构【译】

作者:Muhammad Anser来自🇵🇰的软件工程师,作家,演讲者和喜欢编写技术的技术极客。 在深入研究微前端技术之前,我们必须了解什么是微服务架构,因为微前端的概念隐约受到微服务的启发并以微服务命名。根据官方文档,微服务(也称为微服务架构)是一种架构风格,它将应用程序构建为一组服务,这些服务是:高度可维护和可测试松散耦合可独立部署围绕业务能力进行组织小团队微服务架构支持快速、频繁

干净架构(Clean Architecture)故事【译】

干净架构概念已经存在了一段时间,并不断出现在一个或另一个地方,但它并没有被广泛采用。 在这篇文章中,我想以一种不太传统的方式介绍这个主题:从客户的需求开始,经过各个阶段,提出一个足够清晰的解决方案,以满足上述博客(或同名书籍)中的概念。观点为什么我们需要软件架构?它到底是什么?在敏捷世界有点出乎意料的地方可以找到广泛的定义——来自 TOGAF 的企业架构定义。系统在其环境中的基本概念或属性体现在其