1.Docker的介绍及安装.md

本文介绍了容器化技术的发展,从物理机、虚拟化到容器化时代,并详细阐述了Docker的优势。接着,提供了Docker在Windows和CentOS7上的安装步骤,包括镜像加速配置。此外,文章还讲解了Docker的基本概念、执行流程和常用命令,以Docker部署Tomcat为例展示了实际应用。
摘要由CSDN通过智能技术生成

Docker-第一部分

Docker的介绍及安装

容器化技术介绍

应用的部署演化分为3个阶段

物理机时代==》虚拟机时代==》容器化时代

物理机时代

最早的程序部署形式,在单台物理机完成一系列应用程序的的部署安装,运行维护。

缺点是

** 部署慢(在安装物理机时要对主机进行存放,运行tomcat,必须安装jvm等)

** 成本高 (一个外网的应用服务器,进行采购价格都很高)

** 资源浪费 (资源不平衡,比如一个应用是计算密集型的,那么对cpu的要求很高,对内存磁盘资源要求不高,这样闲置的内存和磁盘无法被其他应用使用)

** 难以扩展和迁移(要进行横向扩展,比如要进行win到linux平台的应用迁移,难以扩展)

** 受限于硬件:比如早期的solaris有自己的硬件配置,在sloris上开发的应用很难直接在window上使用,虽然JVM技术出现后,受制于硬件的情况减少了,但是JVM也有自己的局限性,要解决受制于硬件的问题,需要搭建立一套统一的标准,但是硬件依然很难解决。

虚拟化时代

在一台物理主机上通过硬件底层的虚拟化支持,虚拟出来很多个虚拟机,每个虚拟机都是一台独立的电脑,每个虚拟机都有自己独立的硬件,如cup,内存,硬盘,还有对应的操作系统,可以直接操作系统上安装软件。虚拟化技术出现,让主机资源可以得到充分的应用。桌面及应用,可以VMWare来创建运行Centos,Ubuntu这样的操作系统。

虚拟化的特点:

** 多部署: 在一台物理主机上可以创建多个虚拟机,每个虚拟机之间都有自己独立的资源,彼此独立,互不影响。

** 资源池: 虚拟化技术可以将主机的硬件资源看成一个池子。当前的物理机有自己的物理硬件,在硬件资源上有自己的操作系统,在操作系统上有一个组件Hypervisor,这个组件可看称是虚拟机和主机操作系统之前的桥梁,它可以对虚拟机资源进行分配,并对虚拟机进行管理。VMWAre就是典型的使用Hypervisor实现的一个产品。VMWare启动后Hypervisor,就会对主机上的所有资源进行统计,当创建新的虚拟机时,由Hypervisor为它分配资源。

** 资源隔离: 当Hypervisor为这个虚拟机分配了资源后,这个资源就是这个虚拟机独享的,其他的资源不会去抢占

** 很容易扩展: 当虚拟机的内存不够时,Hypervisor直接从资源池里直接分配就行。

但是,虚拟机也有自己的问题

VM需要安装操作系统: 比如一个很小的应用,可能只需要一个几百k的内存就行,但是为了支撑这个应用,需要安装操作系统,但是操作系统占用测内存和硬件资源比这个应用多得多,在操作系统层面也浪费了很多资源。
在这里插入图片描述

容器化时代

于是,在虚拟化的概念基础上,剥离操作系统,只安装应用程序,减少资源的浪费,就出现了容器化技术在这里插入图片描述

​ 右侧虚拟机中需要安装Guest Os(客户操作系统)才能构建应用,左侧容器化技术,Docker是容器化技术最典型的代表产品,应用直接通过Docker的沙箱机制构建在主操作系统上,应用程序的部署速度和占用资源都小得多。容器化技术比虚拟机更灵活,更小。

​ 现在一般是虚拟化技术和容器化技术结合使用,因为它们解决的问题不同,虚拟机更多是物理资源层面的隔离,如分配多少内存等,而容器是App层面的隔离,底层的硬件资源是共享的。

容器化解决的问题

在这里插入图片描述
​ 如上图,线上是开发人员所使用的技术和环境,如api节点,分析数据库,队列,用户数据库,静态网站等,下面是运维人员使用的环境,如服务器,各种中间间等。开发人员在开发完后,准备上线,需要将应用打包,数据库导出数据,各种配置文件整理后给运维,运维根据安装文档在各节点进行安装部署。假设有一个参数配置出错,都是导致整体的应用部署失败。

​ 如果开发人员将所有内容和资源都打包成一个文件,运维直接将文件展开后就可以轻松部署,那就可以使用容器化技术了。容器化技术可以提供标准化的应用部署方案,通过容器编排工具可以自动将容器发布到集群各个节点上,自动运行,真正做到一间发布,容器编排工具还可以提供管理功能,当其中一个节点失败了,可以直接进行重新发布,减少运维人工成本。它不仅是一个技术的变化,还有软件开发流程中的一个根本性变化。

​ 标准化的应用打包如何做到的?

容器是一个文件,也是一种标准化的部署方式,针对这个容器,它要做的事就是将所有软件运行的资源,比如数据库,队列信息等都放入容器中,运行这个程序的底层硬件资源也放入其中,也就是容器中包含了所有运行的必要条件,只要将这个容器在部署服务器直接展开就能运行。

容器化技术的应用场景

  • 标准化的迁移方式 : 开发直接打包,运维直接展开使用

  • 统一的参数配置: 与应用程序相关的参数配置,在开发打包时就已配置

  • 自动化部署: 镜像还原过程自动完成

  • 应用集群监控: Docker和K8s都有监控的职能呢个,可以及时监控应用的运行状况。

  • 开发与运维之间的沟通桥梁

阿里和腾讯云的容器化技术

阿里和腾讯云采用的的是虚拟机+容器化的实现。

如果阿里云购买的es服务器,本质是一台虚拟机,在虚拟机内可以根据不同的应用安装不同的容器,如需使用mysql数据库,那么就安装Mysql的容器。

Docker介绍

  • Dokcer是开源的应用容器引擎,基于Go语言开发

  • 容器完成使用沙箱机制,容器开销低。即系统的资源利用率是很高的

  • Docker就是容器化技术的代名词

  • Doker也具有一定的虚拟化职能。利用docker不仅可以创建容器,还可以向本地的物理机申请相应的资源。方便程序的迁移和扩展。

  • 最主要的作用是提供了标准化的应用打包。它提供了一个镜像文件,其中包含了所有的资源,如数据库,队列,web应用服务器等,同时也包含了运行这些程序所需要的硬件上的资源,如需要多大的内存等。

    Docker的发展历史
    在这里插入图片描述

​ 容器化技术最早在2014年提出,在Solaris系统中提供了容器化技术。2008年Linux也提供了容器化的支持,代号为LXC1.0,是docker的前身。在2013年Docker的创始人Solomon Hykes开始在项目中使用Dcoker,同年进行了开源。2016年进行版本变更,拆分为ee(社区版,免费)和ce(企业版,收费)两个子版本。直到今天Docker成为了容器化技术的代名词。

​ Docker的官网了解详细: https://www.docker.com/

​ Docker的官方文档: https://docs.docker.com/

Docker安装

在Windows上安装Docker

官网windows安装说明: https://docs.docker.com/docker-for-windows/install/

系统要求:
  • Windows 10 64位:专业版,企业版或教育版(内部版本15063或更高版本)。

  • 必须启用Hyper-V和Containers Windows功能。

  • 要在Windows 10上成功运行Client Hyper-V,需要满足以下硬件先决条件:

安装前准备:

1.Hyper-v已安装并正常工作
在开始菜单中,键入“ 启用或关闭Windows功能”,然后按Enter。将Hyper-V前面勾选上
在这里插入图片描述

2.启用虚拟化
除Hyper-v启用外还必须启用虚拟化。桌面右键“任务管理器”,检查任务管理器上的“性能”选项卡:
在这里插入图片描述
3.下载docker
https://hub.docker.com/editions/community/docker-ce-desktop-windows/ 下载类似“exe4j_Downloader_3265010232.exe”的文件

安装Docker
  1. 双击Docker Desktop Installer.exe运行安装程序。
    如果尚未下载安装程序(Docker Desktop Installer.exe),则可以从 Docker Hub进行下载。它通常下载到您的Downloads文件夹中,或者您可以从Web浏览器底部的最近下载栏中运行它。

  2. 按照安装向导上的说明接受许可证,授权安装程序,然后继续安装。
    出现提示时,请在安装过程中使用您的系统密码授权Docker Desktop Installer。需要特权访问才能安装网络组件,到Docker应用程序的链接以及管理Hyper-V VM。

  3. 在安装完成对话框上单击完成,然后启动Docker Desktop应用程序。

运行Docker

Docker Desktop在安装后不会自动启动。要启动Docker Desktop,请搜索Docker,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值