基础系列<一>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(仓库):仓库是集中存放镜像文件的场所。
- public(共有仓库):Docker Registry公有仓库是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。
- private(私有仓库):Docker官方提供了Docker Registry镜像,可以直接使用做为私有Registry服务。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull下来就可以了。
- Docker Host(docker主机):操作镜像和容器
- Docker Client(docker客户端):操作Docker Host
标签:系列,虚拟机,端口,概念,集装箱,镜像,Docker,docker 来源: https://www.cnblogs.com/choii/p/16542428.html