zoukankan      html  css  js  c++  java
  • Docker——架构分析

    Docker的核心组件包括:

    • Docker 客户端 - Client
    • Docker 服务器 - Docker daemon
    • Docker 镜像 - Image
    • Docker 仓库 - Registry
    • Docker 容器 - Container

    Docker采用的是Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。

    架构如下图所示。
    在这里插入图片描述

    客户端

    Docker客户端一般通过Docker command来发起请求,另外可以通过Docker提供的一整套RESTful API来发起请求,这中方式更多地被应用在应用程序的代码中。

    服务器

    也就是Docker daemon,以 Linux 后台服务的方式运行。这是驱动整个Docker功能的核心引擎。

    在Java中Daemon的就是一个守护线程,负责为用户线程提供服务。Docker中的作用也是一样的,接收客户端发来的各种请求,并实现请求所要求的功能,同时针对请求返回相应的结果。

    默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开 TCP 监听。

    容器

    Docker 容器就是 Docker 镜像的运行实例。

    功能上,Docker通过Libcontainer实现对容器生命周期的管理、信息的设置和查询,以及监控和通信等功能。而容器以镜像为基础,同时又为镜像提供了一个标准的隔离的执行环境。

    概念上,容器很好诠释了Docker集装箱的理念。

    用户可以通过 CLI(docker)或是 API 启动、停止、移动或删除容器。可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

    仓库

    Registry 是存放 Docker 镜像的仓库,Registry 分私有和公有两种。

    Docker Hub(https://hub.docker.com/) 是默认的 Registry,由 Docker 公司维护,上面有数以万计的镜像,用户可以自由下载和使用。

    出于对速度或安全的考虑,用户也可以创建自己的私有 Registry。

    镜像

    可将 Docker 镜像看成只读模板,通过它可以创建 Docker 容器。如果说容器提供了一个完整的、隔离的运行环境,那么镜像则是这个运行环境的静态体现,是一个还没有运行起来的运行环境。

    相对于传统虚拟化的ISO镜像,Docker镜像要轻量化很多,它只是一个可定制的rootfs(根文件系统)。它的另一个创新是它是层级的并且是可复用的。

    Docker镜像通常是通过Dockerfile来创建的,Dockerfile提供了镜像内容的定制,同时也体现了层级关系的建立。Docker也可通过docker commit命令来将手动修改后的内容生成镜像。

  • 相关阅读:
    POJ3114强连通+spfa
    POJ2431贪心(最少加油次数)
    POJ2431贪心(最少加油次数)
    POJ2391 Floyd+离散化+二分+DINIC
    POJ2391 Floyd+离散化+二分+DINIC
    POJ2195费用流+BFS建图
    POJ2195费用流+BFS建图
    POJ2060最小路径覆盖
    POJ2060最小路径覆盖
    POJ2044 深搜+剪枝(云彩下雨)
  • 原文地址:https://www.cnblogs.com/lippon/p/14228513.html
Copyright © 2011-2022 走看看