首页 > 自考资讯 > 高考百科

Docker最全详解(万字图文总结)(docker?)

小条 2024-09-30

68c742e004114392b9cf0f63838e167c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=gxmYCB0OTNur3wn20LzNbNU5nBM%3D大家好,我叫mikechen。

Docker是云原生构建的基石,也是各大厂商检验的重点。了解有关@mikechen 的Docker 容器的更多信息。

本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。

86e925fd1abe4ad9a930da595f772e17~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=d6rt1D4LirRLqY5KbUAnAYcTpeQ%3D

Docker

Docker 是一种容器,一种轻量级、可移植、独立的软件打包技术,允许应用程序几乎在任何地方以相同的方式运行。

容器技术本质上是计算机资源的隔离和控制。可以理解为一种沙箱技术。沙箱与容器完全相同。

053cd59e17434f09a0bb2639ea3ce4bf~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=4QA9ObXBU8vSqOdoJ0ZlnfkktDQ%3DDocker 是一个开源容器引擎,是容器概念的实际实现,诞生于2013 年初,最初是dotCloud 内的一个副项目。

69cc2454599348e18235d3c8c0f24bb7~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=rctqYgAnUMIebZFNqbYoiB%2BuDyk%3D

为什么用Docker?

Docker作为一种新型的虚拟化方式,相比传统的虚拟化方式有很多优势。

Docker 在以下几个方面具有显着的优势:

1、提高系统资源利用率

Docker 容器是一种轻量级虚拟化技术,其用途与虚拟机相同:创建“隔离环境”。但是,容器使用进程级系统隔离,而不是操作系统级资源隔离。

e9d6212bec1541f89bcecd4a10adbb11~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=Zh3JIgIusVT63HueQJqQqJ43Iuo%3D

如果对比上面两幅图,你可以看到虚拟机有一个操作系统,应用程序本身很小,但是操作系统让它变得非常大和笨重。

由于Docker没有操作系统,因此Docker应用程序是高度系统资源密集型的,并且可以在单个主机上同时运行。

2. 更快的交付和部署

Docker 容器极其轻量且快速,容器启动时间只需几秒,为您在开发、测试和部署过程中节省大量时间。

3、高效部署和扩展

Docker容器可以运行在几乎任何平台上,包括物理机、虚拟机、公有云、私有云、个人电脑和服务器。

这种兼容性允许用户直接将应用程序从一个平台迁移到另一个平台。

4. 更易于管理

使用Docker,只需进行很小的更改即可取代之前的大量更新工作。所有变更均分阶段分发和更新,从而实现自动化、高效的管理。

Docker核心技术

Docker技术的三个核心概念是Docker镜像、Docker容器、Docker仓库。

1.Docker镜像

Docker镜像是一个轻量级的、可执行的、独立的软件包,提供容器运行所需的程序、库、资源、配置等文件,为Docker容器提供静态文件系统运行环境。

简单理解,Docker镜像是Docker容器的静态视角,Docker镜像是启动Docker容器的基础。

您可以使用b02e477838ed4fe88c738e0907ee3325~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=J%2Fij3qPoLI0DIq5fmAl86lcxTes%3D Docker 镜像来列出本地主机上的Docker 镜像。

泊坞窗图像示例:

[root@mikechen ~]# docker image ls -aREPOSITORY TAG IMAGE ID CREATED SIZEnode 最新5377c9a2fb1f 5 周前943MBopenzipkin/zipkin 最新1850194f377c 3 个月前160MBrancher/Server stable 98d8bb571885 6 个月前1.08GB redis 5.0.7 ed8 df88d3b 8 个月前98.2MB 你好-全球最新bf756fb1ae65 10个月前13.3kB 参数介绍:

REPOSITORY:代表镜像的仓库来源。标签:图像ID:图像ID。尺寸:图像尺寸。

2.Docker容器

容器是存放东西的地方,比如书包里放着不同的文具,衣柜里放着不同的衣服,鞋架上放着不同的鞋子。

现在所谓的容器,是面向网站、程序甚至系统环境等应用。

容器技术本质上是计算机资源的隔离和控制。可以理解为一种沙箱技术。沙箱与容器完全相同。

f60b7edb051f49fd9931a205269ad286~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=Li7cWTbNYzTW2OCzrjx1Cjs5W0g%3DDocker是一种容器,还有其他容器,例如CoreOS的rkt。

3.Docker仓库

Docker 仓库(Repository)是存储Docker 镜像的中心位置。

Docker 官方维护了一个公共仓库(https:/hub.docker.com),提供Docker 镜像来满足大多数需求。

523995048eaa4848ba47883f76661628~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=uoxgBZVyTua6QUF9gRIoy7ORCEI%3D Docker官方提供了Docker Hub镜像服务,国内一些云服务商也提供了类似Docker Hub的公共服务。

例子:阿里云、腾讯云、网易云、DaoCloul等镜像服务称为加速器。

您可以通过修改守护进程配置文件/etc/docker/daemon.json来使用加速器。

例如,如果您使用阿里云,您的配置可能如下所示:

3d086b3d952449d8b62cae1a833018ad~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=SFK9RV0F1P6kiYFt%2FxzKRgJ8hqI%3D

Docker架构

Docker架构如下图所示:

e19801ce0bb648569c049be3662a9c26~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=r%2B2gFyBzCjY%2FJFbvE3AuxSLdRwA%3D

Docke使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker主要由以下部分组成:

Docker Client 客户端Docker Daemon 守护进程Docker Image Mirror Docker Container 容器Docker 注册表仓库

Docker流程

Docker运行流程,主要会涉及到如下步骤:

用户使用Docker 客户端与Docker 守护进程建立通信并向后者发送请求。 Docker守护进程作为Docker架构的关键部分,首先提供了Docker服务器的功能,以便能够接收来自Docker的请求。客户端;Docker 引擎在Docker 内执行一组任务。每个任务在作业执行过程中都以作业的形式存在,如果需要容器镜像,则从Docker注册中心下载镜像。 Graph驱动程序通过图像管理来驱动图像,下载的图像以Graph格式保存。如果需要为Docker创建网络环境,可以通过网络管理驱动网络驱动来为Docker容器创建和配置网络环境。如果需要限制Docker容器的执行资源,或者执行用户指令等操作,可以使用Exec驱动来完成。

Docker使用

1.启动Docker

要启动容器,请运行启动命令。

命令是:

docker start [容器名称/id] Docker start命令本质上是为容器文件系统创建一个进程隔离空间。

2. 停止容器

命令是:

docker stop [容器名称/id] 3. 列出所有镜像。

输入以下命令:

docker images 通过docker images 查看本地已有的镜像文件。

$ docker imageREPOSITORY TAG 已创建图像ID 大小debian jessie f50f9524513f 5 天前125.1 MBdebian 最新f50f9524513f 5 天前125.1 MB4 获取图像。

从Docker 存储库获取最新版本的镜像并输入以下命令:

docker image pull [镜像名称] 示例:从Docker Hub 下载最新版本的Java 镜像。

docker pull java 示例:从Docker Hub 下载包含存储库的所有映像作为Java

docker pull -a Java

5. 运行镜像

输入以下命令:

docker run 镜像名称(例如拉取并运行Tomcat 镜像):

docker pull tomcatdocker 运行tomcat

Docker容器应用

1.作为云主机使用

与虚拟机相比,容器使用了一套非常轻量级的虚拟化技术,可以像管理过程一样快速启动、部署和升级。您可以像使用虚拟机一样使用它们。

于是,就有人直接使用Docker的Ubuntu或者其他镜像来创建容器,并将其作为轻量级虚拟机来使用。

2. 作为服务使用

Docker 容器最重要的价值在于它们提供了一组标准化的独立于平台的技术,可以简化服务的部署、升级和维护。

这种开箱即用的能力,可以运行在任何Docker 可以运行的环境中,只要将需要运维的各种服务打包到一个标准容器中,就是Docker 容器如此受欢迎的根本原因。世界。

3.利用微服务架构

如果以上两种应用场景还不足以体现相对于传统PaaS平台的显着优势。

无缝支持微服务架构等复杂灵活的使用场景的能力确实是革命性的。

微服务架构继续将传统的分布式服务拆分成更小的服务模块,这些能力可以与轻量高效的容器部署并行部署和升级。

最重要的是

本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。

4e72854d500e4d0388d6ad2daddf8650~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1728303001&x-signature=34lgiCU0XPcVIe0i7lrwmJBfIWo%3D

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢