【云原生 · Docker】Docker简介及基本组件
【云原生·Docker】Docker简介及基本组件
1.Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- Docker Client客户端
- Docker Daemon守护进程
- Docker Image镜像
- Docker Container容器
Docker引擎Docker Engine是C/S架构,主要有以下部件组成:
服务器(Docker daemon):后台运行的Docker daemon进程。Daemon进程用于管理Docker对象,包括镜像(images)、容器(containers)、网络(networks)、数据卷(data volumes)。
REST接口: 同daemon交互的REST API接口。
客户端(Docker client): 命令行(CLI)交互客户端。客户端使用REST API接口同Docker daemon进行访问。Docker服务的架构图如图1.1所示。
图1.1 Docker服务的架构图
2.Docker平台组成
图1.2 Docker服务组成图
运行一个Docker服务,组成包括Docker daemon服务器、Docker Client客户端、Docker Image镜像、Docker Registry库、Docker Contrainer容器,如图1.2所示。
(1)Docker镜像:
是一个只读模板,用于创建Docker容器,由Dockerfile文本描述镜像的内容。镜像定义类似“面对对象的类”,从一个基础镜像(Base Image)开始。构建一个镜像实际就是安装、配置和运行的过程,Docker镜像基于UnionFS把以上过程进行分层(Layer)存储,这样更新镜像可以只更新变化的层。Docker的描述文件为Dockerfile,Dockerfile是一个文本文件,基本指令包括:
FROM: 定义基础镜像。
MAINTAINER : 作者或维护者。
RUN: 运行linux 命令。
ADD: 增加文件或目录。
EVN: 定义环境变量。
CMD: 运行进程。
(2)Docker容器:
是一个镜像的运行实例。容器有镜像创建,运行过程例如:
运行ubuntu操作系统镜像,-I 前台交互模型,运行命令为/bin/bash
$ docker run -i -t ubuntu /bin/bash
运行过程如下:
拉取(pull)镜像,Docker Engine 检查ubuntu 镜像是否存在,如果本地已经存在,使用该镜像创建容器,如果不存在,Docker Engine从镜像库拉镜像。
使用该镜像创建新容器。
分配文件系统,挂载一个读写层,在读写层加载镜像。
分配网络/网桥接口,创建一个网络接口,让容器和主机通信。
从可用的IP池选择IP地址,分配给容器。
执行命令/bin/bash。
捕获和提供执行结果。
(3)Docker 仓库:
Docker仓库是Docker镜像库。Docker Registry也是一个容器。Docker Hub是Docker公司提供的互联网公共镜像仓库。可以构建自己本地的镜像仓库,国内有些公司也构建了镜像仓库。包括阿里云、新浪等。Docker 集群服务:Docker集群服务运行承租的Docker节点一起工作。目前支持swarm模式。
一个 Docker Registry 节点中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
一般而言,一个仓库包含的是同一个软件的不同版本的镜像,而标签则用于对应于软件的的不同版本。可以通过 <仓库名>:<标签> 的格式来指定具体是哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
以 Ubuntu 镜像 为例,ubuntu 是仓库的名字,其内包含有不同的版本标签,如,14.04, 16.04。可以通过 ubuntu:14.04,或者 ubuntu:16.04 来具体指定所需哪个版本的镜像。如果忽略了标签,比如ubuntu,那将视为 ubuntu:latest。
【云原生 · Docker】Docker简介及基本组件的更多相关文章
- 每周荐书:云原生、Docker、Web算法(评论送书)
每周荐书:云原生.Docker.Web算法(评论送书) 感谢大家对每周荐书栏目的支持,先公布下上周中奖名单 名优秀评论可以免费获得此书. 云原生应用架构实践 云原生架构,关注简化开发流程.提升研发 ...
- 8.云原生之Docker容器镜像构建最佳实践浅析
转载自:https://www.bilibili.com/read/cv15220861/?from=readlist 本章目录 0x02 Docker 镜像构建最佳实践浅析 1.Dockerfile ...
- 2.云原生之Docker容器环境安装实践
转载自:https://www.bilibili.com/read/cv15181036/?from=readlist 官方一键安装脚本 补充时间:[2020年4月22日 11:00:59] 一键安装 ...
- 7.云原生之Docker容器Dockerfile镜像构建浅析与实践
转载自:https://www.bilibili.com/read/cv15220707/?from=readlist Dockerfile 镜像构建浅析与实践 描述:Dockerfile是一个文本格 ...
- 6.云原生之Docker容器Registry私有镜像仓库搭建实践
转载自:https://www.bilibili.com/read/cv15219863/?from=readlist #1.下载registry仓库并设置数据存放的目录(并生成认证账号密码) doc ...
- 5.云原生之Docker容器网络介绍与实践
转载自:https://www.bilibili.com/read/cv15185166/?from=readlist 例如, 当在一台未经过特殊网络配置的centos 或 ubuntu机器上安装完d ...
- 4.云原生之Docker容器数据持久化介绍与实践
转载自:https://www.bilibili.com/read/cv15182308/?from=readlist #### 创建一个web容器并创建一个数据卷挂载到容器的/webapp目录下(默 ...
- 3.云原生之Docker容器三大核心概念介绍
转载自:https://www.bilibili.com/read/cv15181760/?from=readlist docker search --no-trunc=false [镜像名称] #搜 ...
- 1.云原生之Docker容器技术基础知识介绍
转载自:https://www.bilibili.com/read/cv15180540/?from=readlist
- API 管理在云原生场景下的机遇与挑战
作者 | 张添翼 来源 | 尔达Erda公众号 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...
随机推荐
- KingbaseFlySync 无主键过滤器custompkey配置
无主键过滤器custompkey配置 1.执行如下命令:repkeyclean -dbtype kingbase8 -host 192.168.11.15 -port 54321 -user sy ...
- SpringMVC--从理解SpringMVC执行流程到SSM框架整合
前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...
- 如何干涉MySQL优化器使用hash join
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 前言 实验 总结 前言 数据库的优化器相当于人类的大 ...
- Nginx几种负载均衡方式介绍
Nginx几种负载均衡方式介绍 前言 负载均衡就是Nginx将请求分摊到不同的服务器中,保证服务的可用性,缓解服务压力,保证服务的响应速度,即使某一个应用服务不可用,也可以保证业务的正常进行,并且方便 ...
- PLG SaaS 产品 Figma 商业模式拆解
9 月 15 日,Figma 的 CEO Dylan Field 发布消息:今天,Figma 宣布接受 Adobe 的收购... Adobe 以约 200 亿美元收购 Figma,这也是 Adobe ...
- Centos7新增静态路由
文章转载自:https://blog.51cto.com/loong576/2417561 环境说明: 一.临时方式 1. 查看路由和ip [root@centos7 ~]# route -n Ker ...
- 通过Metricbeat实现外部对Elastic Stack的监控
对于Elastic Stack监视的所有用户,建议使用外部数据收集. 概括一下: 关闭Elastic Stack自带的监控功能,然后使用metricbeat收集Elastic Stack数据传输到另外 ...
- Git 便捷操作
虽然现在有很多图形化的 Git 工具,但是命令行依然 yyds.本文记录了工作中很有用的一些 Git 操作. 1.Fork出来的Git仓库同步代码 背景:有的时候从原仓库fork出了一个新仓库,这个新 ...
- C++自学笔记 构造与析构;
构造与析构 类不是实体:对象属于类:函数属于类 : 用不同的对象调用同一个类里面的函数的时候,函数知道是哪一个对象在调用它 关键字 this this是一个指针 Point a; a.print(); ...
- 1.ElasticSearch系列之集群部署
第一步:安装JDK JDK要求jdk1.8+,不安装也可以,ES自带JDK 第二步:系统配置 2.1 禁用交换区 sudo swapoff -a 2.2 开最大文件数的限制 编辑文件 /etc/sec ...