kubernetes——pod和docker容器的关系

技术公众号:后端技术解忧铺
关注微信公众号:CodingTechWork,一起学习进步。

引言

  在做k8s或者docker相关工作时,有没有一个疑问,什么是docker容器?什么是pod?容器和pod又有什么关系?

容器

  1. docker包括三个概念:镜像(image),容器(container)、仓库(repository)
  2. 容器就是镜像运行时的实体,镜像和容器的关系类比与Java面向对象程序设计中的类和实例是一样的概念。
  3. 每个容器的文件系统与其他容器是隔离的。
  4. 容器可以被创建、启动、停止、删除以及暂停等。
  5. 容器的实质是进程,运行于属于自己独立的命名空间。
  6. 容器内的存储层是跟随容器变化的,生命周期同容器保持一致。容器删除,则存储层信息丢失。所以存储东西最好使用存储卷(volume)、绑定宿主目录等方式。
  7. 容器是应用程序层的一种抽象,将代码和依赖关系打包在一起,可以多个容器同时运行在同一台机器上,并与其他容器共享操作系统内核。

pod

  1. pod是k8s调度的最小单元
  2. 1个pod可以包含1个或多个容器,可以理解为pod是容器集合。
  3. pod相当于逻辑主机,每个pod通过describe可以看到都有自己的ip地址。
  4. pod内的容器可以共享相同的ip和端口空间
  5. 进入pod后,正常的linux命令可以使用,若pod内包含多个容器,进入到每个容器都相当于进入了一个逻辑主机。

容器和pod关系

1个pod可以包含1个或多个容器,可以理解为pod是容器的容器。我们可以通过kubectl describe pod <pod_name> -n <namespace_name>命令查看对应pod的容器信息,或者直接查看yaml源文件。

1个pod对应1个容器

在这里插入图片描述

1个pod对应多个容器

在这里插入图片描述

posted @ 2021-12-02 17:13  Andya_net  阅读(257)  评论(0编辑  收藏  举报  来源