Docker——原理以及使用(一)(下)

简介: Docker——原理以及使用(一)(下)

下图是Docker容器的结构,从下到上分别是:


Infrastructure(基础设施),它可以是个人电脑、数据中心的服务器或者云主机;


Host Operating System(主机操作系统),所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法"运行"Docker;


Docker Daemon(Docker守护进程),Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器;


BINS/LIBS是各种依赖。对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于Docker镜像创建的;


APP是应用。应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。


相同点:Docker容器技术和虚拟机技术都是虚拟化技术


不同点:


1.启动时间:Docker容器秒级启动,虚拟机分钟级启动;


2.占用空间:Docker容器镜像大小通常以M为单位,虚拟机以G为单位;


3.性能:Docker容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机。虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,需要申请大量的资源,虚拟化开销大,因而降低性能,没有容器性能好;


4.安全性:Docker容器由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,Docker容器具有一定权限访问宿主机内核,存在一定安全隐患;


5.使用要求:虚拟机基于硬件的虚拟化,需要硬件CPU虚拟化技术支持。Docker容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。


Docker容器(一)——Docker的介绍与部署



7. Docker中Client 和 Server 以及 Registry

/117303716


image.png


Docker 使用客户端/服务器(Client/Server)架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护进程使用 REST API、UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。


Docker 守护进程

Docker 守护进程 ( dockerd) 侦听 Docker API 请求并管理 Docker 对象,例如图像、容器、网络和卷。守护进程还可以与其他守护进程通信以管理 Docker 服务。


Docker 客户端

Docker 客户端 ( docker) 是许多 Docker 用户与 Docker 交互的主要方式。当您使用诸如 之类的命令时docker run,客户端会将这些命令发送到dockerd,从而执行它们。该docker命令使用 Docker API。Docker 客户端可以与多个守护进程通信。


Docker 注册表

Docker注册表存储 Docker 镜像。Docker Hub 是一个任何人都可以使用的公共注册中心,Docker 默认配置为在 Docker Hub 上查找镜像。您甚至可以运行自己的私有注册表。


当您使用docker pull或docker run命令时,所需的映像将从您配置的注册表中提取。当您使用该docker push命令时,您的映像会被推送到您配置的注册表中。


Docker 对象


Image镜像

Image镜像是只读的模板用来创建Container容器,通常情况下 一个镜像是基于另一个镜像,再加一些额外的自定义配置。例如:可以建一个基于ubuntu 的镜像,然后安装Apache 的服务器和你的应用,同时对一些细节进行配置让镜像到处运行。


Container容器

一个容器是镜像的可运行实例,可以使用Docker API或者CLI 创建,开始,停止,移除容器。可以将容器连接到一个或多个网络,为其附加存储,甚至可以根据其当前状态创建新映像。


默认情况下,容器与其他容器及其主机相对隔离。您可以控制容器的网络、存储或其他底层子系统与其他容器或主机之间的隔离程度。


容器由其映像以及在创建或启动它时提供给它的任何配置选项。 当容器被移除时,未存储在持久存储中的任何更改都会消失。


八、虚拟机的两套体系,Docker 与CentOs 与 Vagrant的区别

一种,使用 Vagrant + VirtualBox 快速构建 CentOS 下的 Docker 环境

二种,使用Vmware实现


九、Image镜像是如何实现的?

Docker镜像是通过DockerFile文件


十、将自定义镜像传到仓库

十一、Docker中的网络模型


image.png

目录
相关文章
|
6月前
|
存储 缓存 应用服务中间件
Docker 镜像解密:分层存储与镜像构建原理
Docker 镜像解密:分层存储与镜像构建原理
215 0
|
6月前
|
运维 安全 Docker
Docker 网络模型:多角度分析容器网络的原理与应用
Docker 网络模型:多角度分析容器网络的原理与应用
55 0
|
6月前
|
存储 持续交付 Docker
Docker 镜像解密:分层存储与构建原理多角度解析
Docker 镜像解密:分层存储与构建原理多角度解析
115 0
|
3月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
114 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
25天前
|
关系型数据库 MySQL Nacos
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
46 1
|
2月前
|
Java Linux 虚拟化
浅谈Docker底层原理
浅谈Docker底层原理
28 0
|
2月前
|
存储 网络协议 Unix
docker的底层原理
docker的底层原理
|
3月前
|
存储 运维 Linux
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
在使用Docker时,管理维护工作可能会显得复杂。然而,实际上,Docker提供了许多便捷且人性化的工具,这些工具的使用技巧可以大大简化维护工作,并提升效率。通过掌握这些技巧,你不仅能够更轻松地管理Docker环境,还能展现出专业的能力。接下来我们就给大家介绍一下对于我在工作当中对于Docker容器使用的技术实战总结
48 2
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
|
3月前
|
存储 运维 Linux
探索容器化技术:Docker的原理与应用
在当今快节奏的软件开发环境中,容器化技术成为了一种重要的工具,其中最为流行和广泛使用的是Docker。本文将深入探讨Docker的原理和使用,包括容器化概念、镜像管理、容器编排等内容,帮助读者更好地理解和应用这项技术。
48 0
|
3月前
|
存储 Linux 开发者
探索容器化技术:揭秘Docker的原理与应用
在当今快节奏的软件开发环境中,容器化技术成为了关键的工具。本文将深入探索Docker作为一种常见的容器化解决方案的原理与使用方法,并讨论其在现代应用开发中的重要性与优势。