动力节点Docker深入浅出教程—Docker概述

发布时间:2023-05-24 09:30:55

自学docker必备课程笔记,b站看到动力节点docker视频教程,携带相关学习笔记,按章节整理分享给有需要的朋友~

课程学习地址:https://www.bilibili.com/video/BV1sb41X7oee

1 Docker概述1.1 课程引入1.1.1 开发/运维互掐

开发与测试与运维之间的矛盾主要是由不同的环境引起的。如果开发人员使用的环境可以用于测试和运维,这些问题就可以解决。

1.1.2 DevOps

Devops是一种思想、管理模式、执行规范和标准。主要用于促进开发、测试、运维部门之间的沟通、合作与整合。

1.1.3 运维抱怨架构师

操作和维护总是希望,如果你能做一个一键部署,一下子就可以了。

1.1.4 集群建设在学习中的问题

在学习过程中,由于机器配置较低,启动虚拟机较少,影响学习效率。

1.2 简介Docker

Docker Container引擎是一种开源应用容器, 它允许开发者将应用程序和应用程序运行的环境包装到轻量级和可移植的镜像中,然后发布到任何流行的Linux、Windows机上。原本由PaaS提供商dotcloud公司创始人Solomoner制作的Docker Hykes发起的内部项目是基于其多年云服务技术的创新 Go 语言开发。开源于2013年3月,并在GitHub上进行维护。后由于 Docker 2013年项目火爆, 年底,dotCloud 公司更名为 Docker,公司域名也变为https://docker.com。

1.3 Docker用途1.3.1 提供统一的运行环境

在生产环境中,开发、测试和在线环境往往不同,导致项目(war或jar)其他阶段不存在的奇怪问题出现在不同阶段。除了提供相同的应用程序外,Docker容器还提供了该应用程序的统一运行环境,以确保在任何宿主机HOST上运行相同的结果。也就是Docker = jar/war + 环境。

1.3.2 应用迁移方便

由于 Docker 确保统一的运行环境,使应用程序的迁移更加方便。无论是物理机器、虚拟机、公共云还是私有云,Docker镜像的运行结果都是相同的。用户可以很容易地将运行在一个平台上的应用程序转移到另一个平台,而不必担心运行环境的变化,导致应用程序无法正常运行。

1.3.3 超快启动时间

启动传统的虚拟机技术应用通常需要几分钟:首先启动虚拟机,然后加载虚拟机操作系统,最后手动启动应用程序。 Docker 集装箱应用,由于直接在宿主机系统中运行,无需启动操作系统,因此可以实现秒级,甚至毫秒级的启动。

1.3.4 维护和扩展更容易

Docker公司和各开源项目团队共同维护了大量高质量的官方镜像,不仅可以直接用于生产环境,还可以作为进一步定制的基础,大大降低了应用服务的镜像生产成本。Docker 分层存储和镜像技术使重复部分的应用更容易重复使用,也使应用的维护和更新更容易。基于基本镜像进一步扩展镜像也变得非常简单。

1.4 容器和虚拟机的区别

Docker容器的本质是通过容器虚拟技术虚拟的主机,就像虚拟机一样。应用程序及其运行环境可以部署在虚拟主机上运行。但容器和虚拟机有本质的区别。

1.4.1 程序运行原理在普通系统中

该程序是计算机硬件资源调度的指令序列。

动力节点Docker深入浅出教程—Docker概述_Docker

1.4.2 传统的虚拟技术

动力节点Docker深入浅出教程—Docker概述_Docker_02

传统的虚拟技术是在物理机的操作系统上安装虚拟机管理程序,如VMware、VirtualBox等。许多虚拟机可以在其管理下创建。每台虚拟机都需要安装自己的独立操作系统,而应用程序是安装在虚拟机操作系统上的程序,通过调用各种命令或库函数来使用所需的各种系统资源。对于两个完全相同的应用程序,如果需要在两个虚拟机中运行,则需要两个完全相同的虚拟机操作系统和bins/libs,有大量的资源占用冗余。形成资源浪费。

1.4.3 容器虚拟化技术

Docker容器运行在Docker发动机上,所有Docker容器共享相同的Docker发动机,但它们的运行相互隔离,相互干扰。由于Docker容器不需要虚拟硬件和操作系统,而是共享宿主机的硬件和操作系统,因此Docker容器很少占用系统资源,只包括运行所需的一些资源。所有Docker容器都由Docker引擎管理,因此系统资源的利用率非常高。无论是应用执行速度、内存损失还是文件存储速度,都比传统的虚拟机技术更有效。

1.5 Windows系统虚拟化1.5.1 Hypervisor

Hypervisor——在基础物理服务器和操作系统之间运行的中间软件层,允许多个操作系统和应用共享硬件。也叫VMM( virtual machine monitor ),即虚拟机监视器。Hypervisors是虚拟环境中的“元”操作系统。它们可以访问所有物理设备,包括磁盘和内存。Hypervisors不仅协调了这些硬件资源的访问,还在各种虚拟机之间进行了保护。当服务器启动并执行Hypervisor时,它将加载所有虚拟机客户端的操作系统,并将适量的内存分配给每台虚拟机,CPU,网络和磁盘。

1.5.2 Hyper-V

动力节点Docker深入浅出教程—Docker概述_Java_03

Hyper-V是微软的虚拟化产品,是微软第一个使用类似Vmware的产品 ESXi和Citrix 基于hypervisor的Xen技术。这也意味着微软将更直接地与市场先锋VMware竞争,但竞争方式将会有所不同。Hyper-V是微软提出的系统管理程序虚拟化技术,可以实现桌面虚拟化。Hyper-V是微软提供的商业Hypervisor。KVM和Xen都是Linux系统上开源的Hypervisor。

1.5.3 现在Windows系统

现在的Windows系统不是一个“纯”的Windows,而是一个在Hyper-V上运行的虚拟机。原来的应用层现在也是一个在Hyper-V上运行的虚拟机。系统上运行的应用实际上是在应用层虚拟机中运行的。操作系统虚拟机可以管理应用层虚拟机。

动力节点Docker深入浅出教程—Docker概述_Docker_04

1.5.4 windows的启动

[外链图片转存失败,源站可能有防盗链机制,建议保存图片并直接上传(img-WXIa6wpF-1684824275102)(https://cdn.nlark.com/yuque/0/2023/png294426/168480568083-9e3d3b85-232a-441e-99d6-12b60fec513.png#averageHue=%23e6edf7&id=IvpnF&originHeight=735&originWidth=593&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)]

1.5.5 VMware和Windows系统

VMware采用VMM虚拟化技术,需要直接访问CPU硬件的虚拟化功能。但作为windows系统中的应用,VMware在应用层虚拟机中运行。VMware无法直接访问CPU硬件虚拟化功能。因此,安装VMware VMwareretation出现在Workstation WorkstationHyper-V不兼容的问题。从VMware开始 Workstation 15.5.从5版开始,VMware重构了VMM技术,使其不需要直接访问CPU硬件,而是通过调用Windows10WHPAPI运行系统。这就解决了不兼容的问题。结论:我们正在安装VMware Workstation应安装15.5.5版本或更高版本,Windows系统也应使用Windows10或更高版本。

1.6 Docker系统架构结构

在Docker中有几个非常重要的概念,下面通过理解这些概念来理解Docker的系统架构。

动力节点Docker深入浅出教程—Docker概述_Java_05

1.6.1 Docker Daemon

Docker Daemon,也就是说,Dockerd,Docker守护过程,监控Dockerd API要求并管理Docker对象,如镜像、容器、网络和卷。保护过程也可以与其他保护过程通信,以管理Docker服务。

1.6.2 镜像Image

Docker 用于创建镜像 Docker 容器模板。就像面向对象编程中的类一样。

1.6.3 Container

Docker容器是镜像运行过程中的实体。就像面向对象编程中的例子一样。一个类可以创建N个以上的例子,所以一个镜像也可以创建N个以上的容器。每个运行容器都包含一个或多个相关应用程序,其运行不会干扰其他容器。因为它们是相互隔离的。

1.6.4 Repository仓库

Docker镜像仓库用于保存一组相关的镜像。这组镜像有相同的镜像名称,与镜像仓库名称相同。根据镜像是否可以公开共享,仓库可分为公共仓库和私人仓库。

1.6.5 标签Tag

通过:只能定位一个镜像。也就是说,镜像标签实际上是镜像仓库中用来区分每个镜像的标签。同一个仓库的镜像有不同的标签。

1.6.6 镜像中心Registry

Docker的镜像中心有许多由官方、其他机构或个人创建的Docker仓库。Docker用户可以直接从这些仓库中pull所需的镜像,也可以将自己制作的镜像push到Docker镜像中心相应的仓库。最常用的镜像中心是Docker官方Docker Hub(https://hub.docker.com)。

1.7 总结1.7.1 课程引入

这部分是重点。了解开发、测试和运维关系不和谐的原因是什么?(不同的环境)了解运维对架构师的抱怨在哪里?(我希望一键部署)了解集群建设在学习过程中面临的问题是什么(虚拟机不能启动太多)可以描述什么是Devops?(这是一种促进三个部门之间沟通与合作的思想和管理模式)。

1.7.2 简介Docker

可以简要描述Docker LOGO的由来(Container这个词的意思不仅仅是“容器”,还有“集装箱”。这就是为什么LOGO中有很多集装箱。至于鲸鱼,是网友在很多LOGO方案中投票的结果),Docker名称的意思(Docker的意思是码头工人,也就是操作集装箱的人)。

1.7.3 使用Docker

了解Docker可以将应用程序和环境打包成镜像,然后实现“一个地方可以运行,一个地方可以运行”。

1.7.4 容器和虚拟机的区别

这部分是重点和难点。容器和虚拟机最大的区别是虚拟机中有独立的硬件系统和操作系统,但容器中的所有都是共享宿主机中的操作系统和硬件系统。

1.7.5 Windows系统的虚拟化

这一部分是重点和难点。首先要知道什么是Hypervisor(用于实现操作系统和硬件系统之间多个虚拟机共享宿主机的硬件系统),什么是Hyper-V(微软提供的商业Hypervisor,在windows系统上运行)? KVM和Xen是Linux系统上的开源Hypervisor,然后了解当前Windows系统的架构(操作系统和应用层是位于Hyper-V以上的两台虚拟机)。至于VMware Workstation,要知道从15.5.从5版开始,它重构了VMM虚拟机技术,从需要直接调用CPU的虚拟化功能到调用Win10系统的WHP(Windows Hypervisor Platform)API运行。解决VMware问题 WorkstationHyper-V的不兼容问题。

1.7.6 Docker系统架构结构

可以简要介绍Docker系统的架构图。

上一篇 Wallpaper模块(一)
下一篇 Retrofit使用方法

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题