Docker(一):认识Docker 原创 李振良_阿良 2018-09-25 17:11:10 博主文章分类:Docker & K8S ©著作权 文章标签 docker 认识 文章分类 Docker 云计算 ©著作权归作者所有:来自51CTO博客作者李振良_阿良的原创作品,谢绝转载,否则将追究法律责任 Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的CGroup,Namespace,Union FS等技术实现,对应用程序进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。是一种系统级的虚拟化技术。 Docker早起版本实现是基于LXC,并进一步对其封装,包括文件系统、网络互联、镜像管理等方面,极大简化了容器管理。从0.7版本以后开始去除LXC,转为自行研发的libcontainer,从1.1开始,进一步演进为使用runc和containerd。 2014年4月9日,发布第一个正式版本v1.0。 2017年2月8日,发布v1.13.1 2017年3月1日,发布v17.03-CE版本,从此版本开始分为企业版和社区版。 从下图可以看出从2106年Docker技术引起爆发式关注。 1.1 Docker思想 Docker的思想源于集装箱,集装箱解决了什么问题呢?在早期运输货物需要不同分类的船,例如运输水果的船,运输生活用品的船,有了集装箱后,在大船上,可以把货物分类到不同的集装箱中,水果一个集装箱,生活用品一个集装箱,它们之间互不影响,只要把货物封装好集装箱里,就可以把不同类的货物一起运走。 通过Docker logo也可以看出所以然来,Docker就像大船,集装箱就是容器。 一条鲸鱼拖着若干个集装箱的经典形象已经深入人心。 Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Docker Engine上。使用沙箱机制运行程序,程序之间相互隔离。 随着Docker的火热,docker、oci、runc、containerd等等名词也逐渐传播开来。这么多的名词,也容易让人混淆,下面对相关名词和其之间的联系进行一下梳理和总结,方便大家更好地理解。 1.2 OCI 在2015年,由Docker、Redhat、Google、IBM、Microsoft等厂商共同成立OCI(Open Container Initiative)的组织,其目的围绕容器技术指定开放标准和规范。 在2017年7月,OCI v1.0正式发布,其中包含两个规范:容器运行时(runtime)和镜像规范(image),有了这两个规范,不同组织和厂商开发的容器就能够在不同的Container引擎上运行。这样就保证了容器的可移植性和互操作性。 OCI下一步关键工作是提供认证,以验证开发者的产品和项目是否符合规范。 1.3 Docker架构概览 Docker daemon Docker采用C/S架构,Dcoker daemon作为服务端接受来自客户端请求,并处理这些请求,比如创建容器、管理镜像。 为了兼容OCI标准,Docker1.1之后也做了架构调整,Docker容器运行已经不是简单的通过Docker daemon来启动,而是集成了containerd、runc等多个组件。 如下图: Containerd:是一个简单的守护进程,管理shim,向Docker Engine提供接口。使用UnixSocket通信,协议是grpc。 Shim:管理一个容器 runC:运行一个容器。是基于OCI标准的一个容器技术实现,是一个可以直接创建和运行容器的工具。runc直接与容器所依赖的cgroups/kernel等进行交互,负责容器所需环境。 工作流程: dockerd拿到镜像后,通过grpc通知docker-containerd进程启动容器,docker-containerd收到dockerd启动容器请求之后,再启动docker-containerd-shim进程,docker-containerd-shim进程启动后,按照runtime准备运行环境,再启动docker-runc进程。docker-runc进程打开容器的配置文件,找到rootfs位置,根据配置文件启动相应进程。 Containers Container中文意思是集装箱,很多人叫容器,其实延续了原理的Linux container,不管叫哪个,含义是一样的。我觉得叫容器比较合适。容器本质上是Linux系统上的一个进程,这个父进程可能会有多个子进程组成,这个一组进程受资源限制,与其他组进程之间隔离。这种运行时的状态成为容器。 Images Docker的流行,很大因素是取决于有数十万计免费的应用镜像,使得用户或者开发者很容器找到可用的镜像。 镜像不是一个单一的文件,而是有多层构成。可以理解为镜像是创建容器的模板,一个镜像可以创建N个容器。镜像通常封装了一个应用的基础环境。 在未来数月,Amazon Container Registry、Google Container Registry、Docker Hub 及 Quay 等 Container 储存库,也都将支援 OCI 映像档标准。 Docker Client 通常说的Docker,指的是Docker Engine,是以daemon模式运行。而Docker CLI是客户端,用于管理Docker Engine,例如镜像管理、容器管理等操作。 Registry 容器是通过镜像创建的,大量的镜像需要找一个地方存放,这就需要Registry(注册中心)。 企业通常自建私有仓库,也可以使用公共仓库,例如: Docker Hub 地址:https://hub.docker.com Docker官方提供的公共托管Registry,上面有很多现成的镜像,Docker CLI默认就是从这个仓库下载的。 Quay.io 地址:https://quay.io 另一个公共托管的Registry,提供与Docker Hub类似的服务。 赞 收藏 评论 分享 举报 上一篇:Java堆内存又溢出了!教你一招必杀技 下一篇:10分钟搭建Kubernetes容器集群平台(kubeadm) 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Docker基础架构 本文主要会介绍笔者在学习Docker基础架构时所总结的知识点,其中会涉及到Docker Client、Docker Daemon以及Docker Driver等几个方面的相关内容。笔者也会将自己的理解在文中进行阐述,这也算是在和大家交流心得的一个过程。若文中有错误的理解和概念,请大家及时纠正;吸纳大家的建议,对于我来说也是很重要的学习过程之一。1.架构概览Docker本身是一种 C/S 架 Docker Docker Daemon Docker Engine Libcontainer Docker Driver 深度解析Kubernetes架构 Kubernetes(K8s)是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它提供了一个强大的、可扩展的架构,支持容器化应用的高效部署和运维。在这篇博文中,我们将深度解析Kubernetes的架构,深入探讨其各个组件和它们之间的交互。 Pod API Server 深度解析DevOps架构 DevOps(Development和Operations的合并)是一种旨在加速软件开发和部署的方法论。它强调开发团队和运维团队之间的紧密协作,通过自动化流程、监控和反馈机制,实现持续交付和持续改进。在本文中,我们将深度解析DevOps架构,从概念到实践,探讨其关键组成部分、优势、最佳实践以及一些成功案例。 应用程序 持续交付 自动化测试 docker架构图 docker 三大要素:镜像(image)、容器(container)、仓库(repository)1.镜像:就是一个只读的模板,镜像可以用来创建docker容器,一个镜像可以创建很多容器2.容器:用镜像创建的实例,可以被启动、开始、停止、删除。每个容器 Docker docker 集群 架构图 # Docker 集群架构及实践## 前言随着云计算和容器技术的迅猛发展,Docker 已经成为了当下最热门的容器化技术之一。而在实际应用中,往往需要将多个 Docker 主机组成一个集群,以实现高可用和负载均衡等功能。本文将介绍 Docker 集群的架构,以及如何使用 Docker Swarm 搭建一个简单的集群,并演示如何在集群中部署和管理服务。## Docker 集群架构图下 Docker ci docker docker框架架构图 # 如何实现 Docker 框架架构图## 整体流程在实现 Docker 框架架构图的过程中,我们需要先了解整个流程,然后逐步完成每一个步骤。下面是实现 Docker 框架架构图的步骤表格:| 步骤 | 操作 || ------ | ------ || 1 | 安装 Docker || 2 | 创建一个 Dockerfile || 3 | 构建 Docker 镜像 || 4 Docker Dockerfile docker docker容器架构图 # Docker容器架构图的实现步骤## 概述在介绍Docker容器架构图的实现步骤之前,我们先来了解一下Docker的基本概念和原理。Docker是一个开源的容器化平台,能够将应用程序及其依赖项打包到一个轻量级、可移植的容器中,然后将其部署到任何支持Docker的主机上。Docker容器使用操作系统级虚拟化技术,可以在同一主机上同时运行多个隔离的容器,每个容器之间互相独立,像一个独立 Docker 应用程序 Dockerfile docker swarm架构图 ## Docker Swarm架构图实现教程### 概述Docker Swarm是Docker官方推出的容器编排工具,用于管理和编排多个Docker容器。它可以将多个Docker主机(节点)组成一个集群,实现容器的分布式部署和管理。在本教程中,我将向你介绍如何通过具体的步骤来实现Docker Swarm架构图。以下是整个实现过程的流程图。表格:实现Docker Swarm架构图的流程 Docker docker arm架构 docker部署项目 架构图 # Docker部署项目 架构图## 流程下面是部署项目的整个流程,你可以按照这个流程一步一步进行操作:```mermaidjourney title Docker部署项目流程 section 准备工作 开发环境准备: 开发者需要安装Docker并熟悉基本命令 项目准备: 确保项目代码能够在本地正常运行 section 构建Do Docker docker Dockerfile docker单机部署架构图 Docker是一种容器化技术,可以帮助开发者更方便地打包、部署和运行应用程序。在实际开发中,我们常常需要将应用程序部署在单机上,而不是分布式环境中。本文将向你介绍如何在单机上使用Docker进行部署,并给出详细的步骤和代码示例。## 1. Docker单机部署架构图在开始之前,先让我们来看一下Docker单机部署的架构图:```mermaidjourney title Doc 应用程序 Docker json docker 入门基础架构图 ![](https://img2020.cnblogs.com/blog/1740019/202011/1740019-20201103171026897-1007624783.png) Docker docker技术架构图 docker 架构图 前面安装了docker,通过最简单的例子也直观的感受了docker是怎么玩的。下面我们就来了解下docker的架构是怎么的,都包括那些核心的东西。下图是docker的架构图:可以看出Docker采用的是C/S架构模式,client负责发送请求,server(daemon)负责处理请求:包括构建、运行、分发docker容器。当然了client和server可以运行在同一个或不同的主机上。两者之间通过 docker技术架构图 Docker docker 私有仓库 docker架构解析 docker 架构图 docker架构解析 docker 网站 架构图 docker网络架构 前言Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备(特别是 vethpair)。 基本原理首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据 包;此外,如果不同子网之间要进行通信,需要路由机制。Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势之一是转发效率较高。 Linux 通 过在内核中进行数据复制来实现虚拟接 docker 网站 架构图 Docker docker 命名空间 docker应用架构图 docker架构详解 1.整体说明从其架构和运行流程来看,Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。 Docker 运行的基本流程为:用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker docker应用架构图 Docker Network Graph docker 原理架构图 docker架构详解 图说Docker架构的各种信息 作者:linux人 稿源:运维之美 https://ywnz.com/linuxyffq/2344.html 介绍Docker架构的各种信息,Docker在Linux上应用较广,先从Docker总架构说起,再来说说Docker各个核心架构。 Docker 总架构图1.Docker 是一个 docker 原理架构图 运维 数据库 操作系统 Docker docker swarm 架构图 docker的架构 一、Docker的总架构图 docker是一个C/S模式的架构,后端是一个松耦合架构,模块各司其职。用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;Engine执行Docker内部的一系列工作,每一项工作都是以一个 docker swarm 架构图 docker 架构 容器云 PaaS docker 架构图 docker的架构 注个人理解:docker 的镜像是位于最底层,但使用宿主主机的操作系统内核,我们可以看到docker的镜像十分的小,原因是docker镜像只是一些环境的配置,所以十分的小,他是只能读不能写的。docker的 容器 是依赖与镜像的,是在镜像上安装一些自定义软件,是可读可写的。Docker 架构Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Dock docker 架构图 java 后端 Docker 上传 [Docker] Docker整体架构图 https://www.huweihuang.com/article/docker/docker-architecture/ 一、Docker的总架构图 docker是一个C/S模式的架构,后端是一个松耦合架构,模块各司其职。 用户是使用Docker Client与Docker Daemon建立通信 docker unix 存储类型 网络管理 端口映射 docker 服务架构图 docker架构组成 Docker 采用了标准的C/S 架构,包括客户端、服务端两大核心组件,同时通过镜像仓库来存储镜像。客户端和服务端既可以运行在一个机器上,也可以通过socket 或者RESTfulAPI 来进行通信。如图:1、服务端Docker服务端一般在宿主主机后台运行,dockerd作为服务端接受来自客户端的请求,并通过containd具体处理与容器相关的请求,包括创建、运行、删除容器等。服务端主要包括4个组 docker 服务架构图 docker linux 客户端 服务端