首页
读书
网课

正文

什么是Docker


Docker如何解决依赖的兼容问题?

将应用的Bins/Libs与应用一起打包

将每个应用放到一个隔离容器去运行,避免互相干扰


Docker如何解决不同系统环境的问题?

Docker将用户程序与所需要调用的系统函数库一起打包

Docker在运行到不同操作系统时,直接通过和内核创建虚拟的操作系统实例 (内

核和库) ,来隅离不同的进程和资源


Docker人允许开友中将应用、依赖、函数库、配置一起打包,形成可移植镜像

Docker应用运行在容器中,使用沙箱机制,相互隔离

Docker镜像中包含完整运行环境,包括系统闹数库,仅依赖系统的Linux内核,

因此可以在任意Linux操作系统上运行



Docker 的主要用途,目前有三大类。

提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测

试和构建的环境。

提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

组建微服务以构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以异拟出微服务避构。



Docker的组成

Docker 包括三个基本概念

镜像 〔Image)

容器 (Contaliner)

仓库 Repository

理解了这三个概念,就理解了 Docker 的整个生命周期。



=========================

镜像

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,

才能生成 Docker 容器。

image 文件可以看作是容器的模板,除了提供容器运行时所需的程序、库、资

源、配置等文件外,还包含了一些为运行时准备的一些配置参数 (如匿名卷、

环境变量、用户等) 。

Docker 根据 image 文件生成容器的实例。同一个image 文件,可以生成多

个同时运行的容器实例。

镜像不包含任何动态数据,其内容在构建之后也不会被改变。

image 是二进制文件。实际开发中,一个image 文件往往通过继承另一个

image 文件,加上一些个性化设置而生成。举例来况,你可以在 Ubuntu 的

image 基础上,往里面加入 Apache 服务器,形成你的image。

Image 文件是通用的,一台机器的image 文件拷贝到另一合机器,照样可以

使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件

而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不

是从零开始制作。

为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的

官方仓库 Docker Hub 是最重要、最间用的Image 仓库。此外,出售自己制

作的 Image 文件也是可以的。


=================================

仓库

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它

服务器上使用这个镜像,我们区需要一个集中的存储、分发镜像的服务,

Docker Registry 就是这样的服务。

一个 Docker Registry 中可以包含多个仓库 (Repository) ; 每个仓库可以包

合多个标签 (Tag) ; 每个标签对应一个镜像。

通常 ,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软

件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软

件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

以Ubuntu 镜像 为例,ubuntu 是仓库的名字,其内包含有不同的版本标签,

如,16.04, 18.04。我们可以通过 ubuntu:16.04,或者 ubuntu:18.04 来具体

指定所需哪个版本的镜像。如果忽略了标签,比如 ubuntu,那将视为ubuntu:latest

DockerHub: DockerHub是一个Docker镜像的托管平台。这样的平台称为

Docker Reglstry。

国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。


=======================================

容器

镜像 (Image) 和容器 (Container) 的关系,融像是面器对象程序设计中的

类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。

简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境,容器

可以被创建、局动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于目

己的独立的命名空间。因此容器可以拥有目己的 root 文件系统、目己的网络配

置、目己的进程空间,甚全目己的用户 ID 空间。

容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于

宿主的系统下操作一样。 这种特性使得容器封装的应用比直接在宿主运行更加

安全。


======================================

Docker架构

客户闯(client): 通过命令或RestAPI向Docker服务端发送指令。可以在本地或

远程向服务端发送指令。

服务端(server): Docker守护进程,负责处理Docker指令,管理镜像、容器等

20241017101727_Docker架构.png





安装Docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版 (免费,支持周期 7 个月) ,

EE 即企业版,强调安全,付费使用,支持周期 24 个月。


Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10,

CentOS 7 满足最低内核的要求。


仓库

DockerHub: DockerHub是一个Docker镜像的托管平台。这样的平台称为

Docker Registry。

国也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像仓库

20241017102457.png























上一篇: 没有了
下一篇: 没有了
圣贤书院