Docker 概念术语

本文详细介绍了Docker的基础知识,包括Docker的概念、镜像、容器、Docker Compose和Docker Swarm。讲解了Docker的生命周期、核心命令、镜像的分层结构以及容器的生命周期。同时,阐述了Docker在服务编排方面的应用,如Docker Compose和Docker Stack在单引擎和多引擎环境中的使用。
摘要由CSDN通过智能技术生成

Docker

Docker:单词意思为码头,是一个开源的高性能应用容器引擎;
应用场景:高效部署微服务等应用,简化应用的部署和运维;

官方解释:

一个容器不过是一个正在运行的进程,并对其应用了一些附加的封装功能,以使其与宿主主机和其他容器隔离;
容器隔离的最重要方面之一是每个容器都与自己的私有文件系统进行交互,该文件系统由Docker镜像提供;
镜像包括运行应用程序所需的所有内容:代码或二进制文件,运行时依赖项以及所需的任何其他文件系统对象。


Docker和传统虚拟化对比高效的原因是:直接复用本地主机的操作系统,而传统方式则是在硬件层面实现:
在这里插入图片描述

1.Docker知识体系

Docker跟生命周期有关的三个基本概念:

  1. Image(镜像)
  2. Container(容器)
  3. Repository(仓库)

镜像 = 由N层只读层组成,每层里存的可能是一个命令,也可能是一个依赖
容器 = 镜像 + 读写层,是镜像的运行实例
仓库 = 同Maven仓库,用来存储镜像,也分公有仓库和私有仓库

Docker核心组件:

  1. Docker Client
  2. Docker Daemon
  3. Docker Image
  4. Docker Container
  5. Docker Registry

Docker Client = Docker提供命令行(CLI),用来执行各种命令
Docker Daemon = Docker守护进程,响应来自Docker Client的请求,包含三部分:Server|Engine|Job
Image|Container|Registry上边已解释

Docker官方编排项目(Orchestration)三剑客:

  1. Docker Compose
  2. Docker Machine
  3. Docker Swarm

Docker Compose = 单Docker Daemon的服务编排(单引擎多容器应用部署和管理)
Docker Machine = 在各平台上快速安装Docker环境:Mac|Win|Linux,支持多种后端驱动:本机|虚拟|远程
Docker Swarm = 多Docker Daemon的多服务编排(多引擎多容器应用部署和管理),独有Service|Task概念,部署:单服务|多服务(Stack)

易混淆概念:Docker Compose & Docker Stack,因为Stack也使用Compose的docker-compose.yml编排服务;
弄清楚之前要先理解Docker Swarm的ServiceTask

  1. Docker Compose
    单个Daemon的服务编排,通过docker-compose.yml声明各个容器,yml中的service属性跟Swarm的服务不是一个概念;

  2. Docker Stack
    Docker Stack是Docker Swarm一部分,用来进行多个Docker Daemon的多服务编排,也使用docker-compose.yml声明;
    它提供了简单的方式来部署应用并管理其完整的生命周期:初始化部署 -> 健康检查 -> 扩容 -> 更新 -> 回滚;
    对比Docker Compose在yml中多了deploysecrets等属性,用以声明和支持以上的容器部署管理操作;
    yml中的image属性不支持构建,需要提前打好镜像上传到仓库里;

这是我目前的理解,如有偏差请指出

1.1 Docker知识点

Docker原生知识点梳理:
在这里插入图片描述

1.2 Docker架构

Docker各核心组件的功能:

在这里插入图片描述

1.3 Docker核心命令

Docker高频命令:
在这里插入图片描述

1.4 容器生命周期

docker run 镜像生成一个容器–>销毁的完整生命周期:
在这里插入图片描述

参考: https://docs.docker.com/get-started/

2 镜像

2.1 镜像的理解

结构上说:一个镜像是不可改变的、无状态的,是N个只读层(read-only layer)集合;
内容上说:一个镜像是由N个包含命令或者是依赖的只读层集合;

Docker通过快照机制来实现镜像层堆栈,对外将所有镜像层堆叠并合并,保证多镜像层对外展示为统一的文件系统:

在这里插入图片描述
通过命令:docker image inspect 镜像名:tag查看镜像分层情况,执行后返回一个包含各层信息的json串;
下图是通过Portainer可视化工具查看一个SpringBoot Web应用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值