Docker系列<一>Docker介绍和概念

一、docker介绍

  • 从下面的logo中我们可以看到,一条鲸鱼载着一堆集装箱。在集装箱没有出现之前,运送的货物全部都堆在一条船上运输,很容易造成货物损坏,比如我运送一批货物,里面有水果,化学物品,木头。当这批货物堆在一条船上一起运送的时候,有可能会发生化学物品泄露导致水果被污染,或者木头松动导致砸坏化学物品。这个时候为了避免货物损失,会安排多条船去运送这批物资,但是这样又会造成运送成本的增加,这个时候就发明了集装箱,把不同的货物通过集装箱隔离开。这样所有的货物放在一条船上,就不会出现互相污染的情况了。
  • 那么docker是什么呢?docker就是那头鲸鱼货轮+集装箱的集合体,它可以将货物进行分类包装进集装箱,并提供一条存放集装箱的货轮。这样,通过想把集装箱送往哪个地方就送往哪个地方。

 

 

 二、基本概念

1、为什么要docker,单机部署不行么?

  • 答:单机部署可以,但是单机部署有两个大问题,那就是端口和环境的冲突,如果只发布3,4个服务,那没什么问题,但是在分布式或者微服务的架构上,一个机器上可能需要部署无数个服务,这个时候,端口够用么?会不会经常存在端口的冲突?如果我网关是用go编写的,业务接口使用.netcore和java编写,那么这台机器的运行环境是不是有可能存在冲突?这就是所有货物都扔在一条船上的时候,会造成过互相污染,互相冲突的场景。所以,docker的使用场景也就出来了,当你需要部署多服务或者需要在一台机器上部署多环境项目时,docker是个很好的解决方案。

2、单机解决不了端口冲突和多环境冲突,那在一台机器上部署多个虚拟机发布不就解决了?

  • 答:是的,这样是可以解决端口问题和多运行环境的冲突问题.虚拟机是一个操作系统,所以就会产生一个问题,那就是占用资源的问题,一台虚拟机占用的硬件资源是很大的。如果有1000个服务需要至少100个虚拟机?一台机器的资源够100个虚拟机分么?而且,同时启动100个虚拟机,耗时又如何?所以虚拟机虽然解决了端口和环境的问题,却又引入了资源占用和启动耗时,迁移,复制等维护管理上的不方便。

3、docker是如何解决端口、环境、资源占用大,启动慢,不好管理和维护的问题的呢?

  • Docker通过运行容器来解决上述的问题,容器是docker的一个小型操作系统。比虚拟机小的多,具有占用资源小,启动快的特点同时拥有虚拟机的所有功能特点。

4、docker概念

  • Image(镜像):镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置文件、配置参数等。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • Container(容器):容器 = 镜像 + 读写层,文件系统+可读写,是不是相当于一个操作系统了,实际上就是一个小型的虚拟机。
  • Repository(仓库):仓库是集中存放镜像文件的场所。
  1. public(共有仓库):Docker Registry公有仓库是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。
  2. private(私有仓库):Docker官方提供了Docker Registry镜像,可以直接使用做为私有Registry服务。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull下来就可以了。
  • Docker Host(docker主机):操作镜像和容器
  • Docker Client(docker客户端):操作Docker Host

 

posted @ 2022-08-02 05:02  许轩霖  阅读(116)  评论(0编辑  收藏  举报