【Docker】可以将TA用于什么,简单了解下

欢迎来到《小5讲堂》,大家好,我是全栈小5。

这是是《Docker容器》序列文章,每篇文章将以博主理解的角度展开讲解,

特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。

温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

目录

Docker用途

交付程序

容器有一个非常好的特点,非常适合进行持续集成和持续交付(CI / CD)工作流。

Docker是一种软件平台,它允许开发人员使用本地容器来构建和运行应用程序和服务。

容器提供了一个标准化的环境,使开发人员可以在任何计算机上工作,而无需担心应用程序在不同环境中的兼容性和依赖关系。

通过使用Docker,开发人员可以简化应用程序的开发、测试和部署过程,提高开发效率并降低问题发生的可能性。

官方提供的示例方案:

  • 您的开发人员在本地编写代码,并使用Docker容器与同事共享他们的工作。
  • 他们使用Docker将其应用程序推送到测试环境中,并执行自动和手动测试。
  • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中以进行测试和验证。
  • 测试完成后,将修补程序推送给生产环境就像将更新的映像推送到生产环境一样简单。

响应式

响应式部署和扩展

Docker还有一个比较好的特点就是,高度可移植性特点,允许基于容器的平台高度可移植的工作负载。

比如,Docker容器可运行的介质

  • 开发人员的本地笔记本电脑上
  • 数据中心内的物理或虚拟机上
  • 云提供商上或混合环境中运行

Docker的可移植性和轻量级的特性还使您可以轻松地动态管理工作负载,并根据业务需求指示实时扩展或拆除应用程序和服务。

Docker架构

Docker端

Docker使用客户端-服务器架构。

Docker客户端与Docker守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。

Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。

Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。

另一个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对象

使用Docker时,您正在创建和使用映像,容器,网络,卷,插件和其他对象。本节是其中一些对象的简要概述。

图片

一个图像是用于创建一个码头工人容器指令的只读模板。通常,一个映像基于另一个映像,并进行一些其他自定义。例如,您可以基于该ubuntu 映像构建映像,但安装Apache Web服务器和您的应用程序,以及运行该应用程序所需的配置详细信息。

您可以创建自己的图像,也可以仅使用其他人创建并在注册表中发布的图像。要构建自己的映像,您可以 使用简单的语法创建一个Dockerfile,以定义创建映像并运行它所需的步骤。Dockerfile中的每条指令都会在映像中创建一个层。当您更改Dockerfile并重建映像时,仅重建那些已更改的层。与其他虚拟化技术相比,这是使映像如此轻巧,小型和快速的部分原因。

货柜

容器是图像的可运行实例。您可以使用Docker API或CLI创建,启动,停止,移动或删除容器。您可以将容器连接到一个或多个网络,将存储连接到它,甚至根据其当前状态创建一个新映像。

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

底层技术

Docker用Go编程语言编写,并利用Linux内核的多种功能来交付其功能。

Docker使用一种称为的技术namespaces来提供称为容器的隔离工作区。

运行容器时,Docker会为该容器创建一组 名称空间。

这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且对其的访问仅限于该名称空间。

核心组件

Docker的架构主要由三个核心组件组成:

1.Docker引擎(Docker Engine)

也称为Docker守护进程,是整个Docker系统的运行时组件。它负责管理Docker容器的创建、运行和销毁,以及容器间的通信和资源隔离等功能。

2.Docker镜像(Docker Image)

镜像是Docker应用程序和服务的构建块。镜像是只读的、轻量级的文件,它包含了运行应用程序所需的所有文件系统、库和依赖关系。可以将镜像看作是应用程序的静态快照。

3.Docker容器(Docker Container)

容器是基于镜像创建的可运行实例。容器是可移植的、封装了应用程序和其依赖关系的单元,它们在一个隔离的环境中运行。容器可以快速启动、停止和重启,而且相互之间互不干扰。

除了这些核心组件外,Docker还有一些辅助组件,如Docker Compose(用于定义和运行多个容器的应用组)和Docker Swarm(用于管理容器集群和进行容器编排)等。这些组件共同构成了Docker的架构,使得开发人员可以轻松地构建、共享和部署容器化的应用程序和服务。

相关推荐
景天科技苑13 分钟前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!9 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林10 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
A ?Charis12 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision12 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge12 小时前
Docker篇(Docker Compose)
运维·docker·容器
北漂IT民工_程序员_ZG13 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes