Docker介绍及其应用

一、Docker介绍及原理

为什么会有Docker

虚拟机以及它的问题

虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统中运行另一种操作系统,如在Windows系统中运行Linux系统,而程序对此无感知。
虽然用户可以通过虚拟机还原软件安装的原始环境,但是虚拟机方案有以下缺点:

  • 占用资源多。虚拟机为了使用软件模拟硬件,本身就会独占一部分内存和硬盘空间。当它运行的时候其他程序就不能使用这些资源了,且占用资源较多(比如我装的ubuntu就分配了20G).
  • 冗余步骤多。虚拟机是完整的操作系统,一些系统级别的操作步骤如用户登陆往往无法跳过。
  • 启动慢。启动虚拟机与操作系统所需时间基本一致,常常需要等待几分钟才能开始运行。

Linux容器(Linux Containers)

由于虚拟机存在这些缺点,Linux发展出了另一种虚拟化技术:Linux容器。Linux容器 不是模拟一个完整的操作系统,而是对进程进行隔离和限制
隔离:namespace技术,使一个进程以为自己运行在一个独立的操作系统中,其独占所有的文件系统、网络等资源。
限制:cgroups技术,限制一个进程能够使用的CPU、内存等资源。

Docker是什么

  • Docker是基于容器技术轻量级虚拟化解决方案。就像书包可以放书,杯子可以装水,我们可以把任何想得到的应用和程序放入Docker中。
  • Docker是容器引擎,把Linux的cgroupsnamespace等容器底层技术进行封装抽象,为用户提供了创建和管理容器的便捷界面(包括命令行和API)
  • Docker 是一个开源项目,诞生于 2013 年初,基于 Golang 实现。容器技术在工业界已经得到了大规模的应用。
    来自Docker官网

Docker的主要用途

  • 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  • 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。如双十一时电商的业务量增倍,临时扩展机器对平时来说是一种极大的浪费,也给运维带来了很大的工作量,而Docker就可以使得一台宿主机启动成千上百个容器
  • 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

Docker与虚拟化的差别

在这里插入图片描述
在这里插入图片描述

Docker核心概念

Docker三大核心概念:镜像(images)容器(Container)仓库(Repositories)

镜像&Dockerfile

  • 前面我们讲到了集装箱,鲸鱼拖着的所有集装箱就是一个镜像。Docker 把应用程序及其依赖,打包在 镜像(image) 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
    (与类和对象的关系相似)。
    image 文件是通用的,在一台机器上打包好的 image 文件换到另一台机器上,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,以他们为基础进行加工,而不是从零开始制作。
  • Dockfile:一个文本文件,用来配置image。Docker根据该文件生成二进制的image文件。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。

容器

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台,可以把容器看做是一个简易版的Linux环境。

仓库

为了方便共享,image文件制作完成后,可以上传到网上的镜像仓库。Docker的官方仓库Docker Hub是最重要、最常用的image仓库。此外我们还可以使用其他云服务厂商提供的镜像仓库,或者自己建设一个镜像仓库。

二、Docker的下载与安装

下载链接:https://www.docker.com/products/docker-toolbox
下载很简单,但是我下载安装完成后打开DockerDesktop出现了这个提示框
在这里插入图片描述
这里点击它的蓝色链接,按照它提示的步骤下载wsl_update_x64.msi就行

三、Docker的使用

实在还没搞懂,先欠着下次再说…

猜你喜欢

转载自blog.csdn.net/weixin_45784337/article/details/114764594