【愚公系列】2022年01月 Docker容器 基本架构
【摘要】 前言Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。Docker是用go语言开发的,基于Linux内核的CGroup、Namespace,以及AUFS类的UnionFS技术,是对进程进行封装隔离的轻量级容器虚拟技术之一。Docker引擎:用来运行和管理容器的核心软件,代指docker或docker平台,采用模块化设计原则,其组件是可替换的。 一、Docker 包括三个基本概...
前言
Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。Docker是用go语言开发的,基于Linux内核的CGroup、Namespace,以及AUFS类的UnionFS技术,是对进程进行封装隔离的轻量级容器虚拟技术之一。Docker引擎:用来运行和管理容器的核心软件,代指docker或docker平台,采用模块化设计原则,其组件是可替换的。
一、Docker 包括三个基本概念:
镜像(Image)
:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:20.04 就包含了完整的一套 Ubuntu20.04 最小系统的 root 文件系统。容器(Container)
:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。仓库(Repository)
:仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
概念 | 说明 |
---|---|
Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 |
Docker 容器(Container) | 容器是独立运行的一个或一组应用,是镜像运行时的实体。 |
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker Registry | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
总结
Docker引擎由如下主要的组件构成:Docker客户端、Docker守护进程、containerd、runc。起初由2个核心组件构成:LXC和Docker daemon。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)