Docker + K8s:现代开发的“标配”

Docker是什么?

简单来说,Docker是一种开源的应用容器引擎,他让开发者可以打包所有的依赖包(库、文件等)到一个轻量级、可移植的容器中,然后发布到任何的linux和Windows机器上。

如果把你的应用程序比作"货物",Docker就是那个标准的集装箱。无论你是用汽车、火车、轮船运输,只要有了集装箱,货物在任何地方的装卸和运行环境都是一样的。

理解Docker,只需要抓住这三个基本点:

  1. 镜像(Image):一个只读的模板。包含了运行程序所需要的所有的代码、运行环境和库。你可以把它看作是软件的"安装包"或虚拟机的"镜像文件"。
  2. 容器(Container):镜像运行的实体。他是镜像的一个运行实例,可以被启动、停止、删除。每个容器之间都是相互隔离的。
  3. 仓库(Registry):集中存放镜像文件的地方。最著名的就是官方的Docker Hub。

那么Docker的出现解决了什么?

在Docker出现之前,程序员最怕听到的一句话就是:"在我的电脑上运行的好好的,怎么到你那里就崩了?"

  1. 解决环境一致性的问题:Docker确保了开发、测试到生产环境的完全一致。你交付的不只是代码,而是整个已经配置好的运行环境。
  2. 轻量化与高性能:与传统的虚拟机(VM)不同,Docker容器直接运行在宿主机的内核上,不需要模拟整个操作系统。
  3. 快速部署与拓展:你可以通过修改一个Dockerfile(自动化脚本)来定义你的应用,并利用Kubernetes(K8s)等工具实现成千上万个容器的自动化缩容。

简述Docker的工作流程:

  1. 编写Dockerfile:写下你的应用需要什么环境(比如Rust 1.85 + Tokio库)。
  2. 构建镜像(Build):执行命令生成一个静态镜像。
  3. 运行容器(Run):基于镜像启动容器,你的应用就开始服务了。

K8s又是什么?和Docker有什么关系?

简单来说,Docker和Kubernetes(K8s)不是竞争对手,而是"集装箱"和"调度中心"之间的关系。

如果你经营一家大型物流公司:

Docker是"集装箱":它负责把货物(代码、依赖、环境)打包成统一的标准规格,确保在任何地方装卸都一样。

K8s是"调度中心/码头起重机":它不关心集装箱里装的是什么,只负责指挥成千上万的集装箱该放在哪条船上,哪只坏了赶紧换个新的,货多了是不是该多加几条船。

他们之间的区别?

他们如何协同工作?

在典型的云原生架构中,它们的分工非常明确:

  1. 开发阶段 :开发者在本地使用 Docker 编写 Dockerfile,将应用打包成镜像。

  2. 分发阶段:镜像被推送到镜像仓库(如 Docker Hub)。

  3. 部署阶段K8s 从仓库拉取这些 Docker 镜像,并决定将它们运行在服务器集群的哪个节点上。

  4. 运行阶段:如果某个 Docker 容器崩溃了,K8s 会立刻察觉并自动重启一个新的容器来顶替它。

Docker 负责"把东西装进盒子里",K8s 负责"管理这一大堆盒子"。 如果没有 Docker,K8s 就像一个没有货物的调度中心;如果没有 K8s,当你有成百上千个 Docker 容器时,手动管理它们会变成一场运维灾难

相关推荐
隔窗听雨眠10 分钟前
CentOS Stream 9 服务器 Docker 部署 KaiwuDB 实战
服务器·docker·centos
qq_452396231 小时前
第十一篇:《Docker Compose:多容器应用编排入门》
运维·docker·容器
Geoking.1 小时前
Docker安装Nacos指南
运维·docker·容器
“码”力全开1 小时前
解耦品牌壁垒:基于 Docker 与边缘计算的高并发视频中台架构(支持 GB28181/RTSP 统一接入与源码交付)
docker·音视频·边缘计算
木卫二号Coding1 小时前
第八十五篇-CentOS-7 + Tesla V100 环境下 Docker 容器内编译部署 Qwen3.6-27B-MTP 大模型实战指南
linux·docker·centos
Irene19911 小时前
Win11 安装 Docker Desktop 并配置 WSL 使用 Hbase
docker·hbase
dongdonglele5211 小时前
ubuntu 系统x86 架构安装docker,可以使用本地显卡
ubuntu·docker·架构
日取其半万世不竭1 小时前
密码管理工具私有化部署,Vaultwarden 备份恢复怎么做?
数据库·docker·容器
赵民勇1 小时前
Rootless容器详解
linux·容器
IT策士2 小时前
第32篇 k8s 之 配置管理:ConfigMap 详解
云原生·容器·kubernetes