Docker学习小结(一)

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像(image)中,然后发布到任何 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的用途

  • 快速一致地交付应用程序
  • 响应式部署和扩展
  • 在相同的硬件上运行更多的工作负载

Docker的架构

Docker使用客户端-服务器(C-S)架构。Docker client与Docker daemon使用REST API进行通信,该Docker daemon完成了构建,运行和分发Docker容器的工作。Docker client和Docker daemon可以在同一系统上运行,也可以将Docker client连接到远程Docker daemon。另一个Docker client是Docker Compose,Docker Compose可以处理由一组容器组成的应用程序。
在这里插入图片描述

  • Docker daemon: 侦听Docker API请求并管理Docker对象,例如镜像,容器,network和数据卷。 Docker daemon还可以与其他Docker daemon通信以管理Docker服务。

  • Docker client:Docker client是许多Docker用户与Docker交互的主要方式。 当使用诸如docker run之类的命令时,客户端会将这些命令发送到dockerd,然后执行它们。 docker命令使用Docker API。 Docker client可以与多个Docker daemon通信。

  • Docker registries:Docker registries存储Docker 镜像。Docker Hub是任何人都可以使用的公共注册表,并且默认情况下,Docker已配置为在Docker Hub上查找镜像。 您甚至可以运行自己的私人注册表。使用docker pull或docker run命令时,所需的镜像将从注册Docker hub或者私人registries(根据配置的registries)中提取。使用docker push命令时,会将镜像推送到配置的注册表。

  • Docker objects:镜像(images)、容器(containers)

镜像与容器

  • 镜像:镜像是只读模板,其中包含创建Docker 容器的指令。 通常,一个镜像基于另一个镜像,并进行一些自定义。 可以自定义镜像,也可以使用使用别人发布的镜像。要构建自己的镜像,可以使用简单的语法创建一个Dockerfile,用来定义创建镜像并运行它所需的步骤。 Dockerfile中的每条指令都会在镜像中创建一个层。 当更改Dockerfile并重建镜像时,只需要重建那些已更改的层。
  • 容器:容器是镜像的可运行实例。 可以使用Docker API或CLI创建,启动,停止,迁移或删除容器。 可以将容器连接到一个或多个networks,甚至根据其当前状态创建一个新镜像。默认情况下,容器与其他容器及其主机之间的隔离度相对较高。 用户可以控制容器的网络,存储或其他基础子系统与其他容器或主机之间的隔离程度。容器被其镜像以及在创建或启动时为其提供的配置选项所定义。 删除容器后,未存储在持久性存储中的状态更改将消失。

猜你喜欢

转载自blog.csdn.net/xywxhzsjhh/article/details/115428722