docker学习——什么是image、container、service、swarm

目录

前言

Image

Containers

Service

swarm


前言

docker真的是个大坑.............,看了这么久文档,忽然发现自己连这四个概念都不清楚..........

Image

docker文档给出的定义如下:

结合这篇博客看:docker的image是什么

image大致是这么一个东西:

  • 是一个虚拟文件系统,在运行时与宿主机的内核共同构成linux的虚拟环境,所以在进入到容器后,会发现里面有linux的文件结构
  • 定义了容器运行时需要执行的命令,这部分大概指的是Dockerfile中的cmd以及entrypoint构建指令指令,指的是我们想在linux虚拟环境上运行什么程序

我的理解是image其实就是一个模板,里面定义了linux的文件系统,同时指定了希望在linux虚拟环境上运行的程序

Containers

docker文档给出的定义如下:

container大致是这么一个东西:

  • 运行image后对应的实例

container由以下几个部分组成

  • 一个Docker镜像
  • 根据docker镜像以及内核形成的linux可执行环境(这是我自己的理解)

我的理解是container其实就是一个linux虚拟环境,这个虚拟环境是根据image这个模板构建出来的,如果把image比成设计图纸,那么container就是设计图纸的具体实现

Service

docker文档中的定义:

在docker的getstart文档中是这么介绍service的

这里有点乱,我举得这两份资料表达的意思差不多,稍微理一下:

  • 一个service只运行一个image
  • service可以根据一个image实例化多个容器,以便让主机分配更多的计算资源给服务进程
  • service规定了镜像运行的一些规则,例如应该开放哪个端口,需要把容器复制多少份以增加服务处理能力等等

如果把土地比作计算资源,容器比作别墅,那么service就相当于一个别墅区,为了满足更多人购买别墅的需求,别墅区会建造更多的别墅(实例化更多容器),此时占用的土地也就越多(占用的计算资源),别墅区当然也会有自己的一套管理方法(规定镜像运行的一些规则),例如建造多少个出口(暴露多少个端口给外界)

swarm

docker文档的定义:

其实就是多个运行docker的主机聚集在一起形成一个集群,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作,这个比较好理解,就不打比方了

如有错误,欢迎指出

猜你喜欢

转载自blog.csdn.net/dhaiuda/article/details/82782189