Docker之一文理解核心概念

Docker的三大核心概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

1. Docker镜像

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模块。镜像是创建Docker容器的基础。

2. Docker容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。所有容器是彼此相互隔离、互不可见,但可以通过特定的IP和端口进行通信连接。我们直到进程是一个程序运行的一次过程,那么容器可以简单理解为镜像运行的一次过程,包括必要的用户空间、用户权限、网络空间等。

3. Docker仓库

Docker仓库类似于代码仓库(试想一下Github),是Docker集中用来存放镜像文件的场所。

4. 通俗解释

对于初学者来说,如何简单易懂的理解概念是接下来继续学习Docker的重要动力之一,那么我就结合我现在所了解给大家做一个比方(可能会有不严谨之处,大家看看就好)。

一艘轮船航行在大海之上,它依靠大海带来的浮力运送千万吨货物穿越彼岸,给世界各国的人们带来贸易。
Docker之一文理解核心概念
Docker之一文理解核心概念
而使用传统的虚拟机程序来创建一个虚拟主机相当于是在轮船上再建造一艘船。
Docker之一文理解核心概念
我们需要使用不同的操作系统(不同的船:潜艇、驱逐舰),我们就创建不同的虚拟机(不同的应用),但是我们有很多不要的功能,比如我们不需要船的浮力、不需要动力,因为有下面一艘母船帮我们搭建了,有时候我们只需要使用一定的功能,比如一个Mysql数据库、一个Tomcat服务器程序,这样用建造一艘新船的方式来获得一小步功能,代价太重了,容易翻船。
Docker之一文理解核心概念
而Docker(包括其他一些程序)引入另一个概念——集装箱(轻型虚拟化程序)。
Docker之一文理解核心概念
我们现在想使用不同的操作系统、功能,不需要再去建一艘船了,而是放一个集装箱(一个容器)。
镜像
这里的镜像我们比作一个特定的程序,比如我想再轮船唱歌,这里的镜像就是一个KTV 设备(镜像文件:Win、Linux、Macos)。
Docker之一文理解核心概念
容器
我们把镜像配套的资源准备好,启动一个镜像,就组成了一个容器。比如:把音响放到一个集装箱中,就成为了一个KTV娱乐城(滑稽)。
Docker之一文理解核心概念
把这个镜像再准备不同的环境资源可以启动另一个不同的容器。它们独立存在,各自运行。
Docker之一文理解核心概念
仓库
仓库可以看做集装箱码头,里面摆满了不同大小、规格差异的集装箱(没有特定资源,但有的集装箱可以用来唱歌,有的则用来做饭。。。
但是这里的集装箱又有些不同,它没有一定的资源:唱歌用的电、做饭用的天然气。
但是如果你把这些集装箱从码头搬运到你的船上,插上电,通上气,它又可以用来唱歌、做饭。
所以说可以把仓库当作集中存放镜像文件的场所。
Docker之一文理解核心概念