[Docker]Docker学习笔记02.Docker引擎与系统架构

    xiaoxiao2022-07-02  112

    提取知识点

    Docker

    C/S架构模式是一种容器化引擎,开机自动运行容器(container)、镜像(image)、网络(network)、数据卷(data volumes)镜像和容器类似于面向对象的类和对象

    目录:

    一、Docker引擎 二、Docker架构

    内容:

    一、Docker引擎

    Docker 引擎是一个包含以下主要组件的 客户端服务器(C/S) 应用程序。

    一种服务器,它是一种称为守护进程并且长时间运行的程序 (开机启动并且一直运行)。REST API用于指定程序可以用来与守护进程通信的接口,并指示它做什么。一个有命令行界面 (CLI ,command-line interface) 工具的客户端。 Docker 引擎组件的流程如下图所示: 描述: 主机启动,自动运行Docker的守护进程,等待接收指令; 我们使用Docker提供的CLI命令行工具去调用Docker的REST API最终访问Docker进程; 容器(container)、镜像(image)、网络(network)、数据卷(data volumes)的管理也通过CLI进行管理。 也就是在今后的学习笔记中重点学习 以下4个名词容器(container)镜像(image)网络(network)数据卷(data volumes)

    二、Docker架构

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

    Docker面向对象镜像类容器对象

    例如: 我们有一个Student类

    class Student{ private String name; public void getName(){ System.out.println("我的名字叫"+name); } }

    在java中,我们知道,类是不能直接拿来用的,需要实例化创建对象才可以使用,如

    Student stu = new Student(); stu.getName();

    同理,Docker也类似,假设我们有一个Student镜像,此时我们是不能直接使用这个镜像的,需要创建此镜像的容器 Student Container,类似java中的创建对象 new 我们创建、使用、释放(Docker的生命周期)都在容器中进行,不会修改到镜像(java:对stu对象修改不会修改到Student类的代码)

    学习笔记01为什么要用Docker中也说了一个优点: 这里的复用类似面向对象的继承 如 我们要创建三个镜像,分别是 Ubuntu、Java、Tomcat 首先创建一个 Ubuntu镜像; 然后创建Java镜像,Java环境需要我们安装在Ubuntu中,此时创建Java镜像,无需再安装Ubuntu,只需要复用Ubuntu镜像,在此镜像的基础上创建Java镜像; 最后我们创建Tomcat镜像,此时复用Java镜像,在Java镜像的基础上创建Tomcat镜像。 这也是Docker的分层存储,上例中,Ubuntu镜像为第一层,Java镜像为第二层,Tomcat为第三层

    **在Docker中我们对 镜像 进行封装,真正使用的是 容器 ** 从上图我们可以看出,我们可以自己使用 docker build 通过Docker Daemon (守护进程)自行构建一个相关镜像(如Ubuntu), 也可以使用 docker pull 通过Docker Daemon (守护进程)去Docker远程仓库中拉取一个官方维护好的镜像(如Tomcat) 然后使用 docker run 通过Docker Daemon (守护进程)运行镜像,生成容器,同一个镜像可生成多个容器运行。

    在此再将以上出现的名词进行简单介绍,后续会详细介绍

    名词说明镜像(Images)Docker 镜像是用于创建 Docker 容器的模板。容器(Container)容器是独立运行的一个或一组应用。客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。仓库(Registry)Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。Docker MachineDocker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
    最新回复(0)