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 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
杨浦老苏11 小时前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
木雷坞11 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
fb_1234512 小时前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
wefg112 小时前
【Docker】基本指令
运维·docker·容器
mengge.cloud13 小时前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes
牛马工作号14 小时前
Copyparty 轻量文件共享:Docker Compose 部署、权限与多协议使用全指南
运维·docker·容器
oioihoii15 小时前
Windows部署MySpeed自建测速服务:Docker运行后直接测速,再配置固定公网地址远程查看
运维·docker·容器
SatanII16 小时前
Kubernetes 认证与授权详解:守护集群API访问安全
安全·贪心算法·kubernetes
闲云野鹤在人间17 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd