社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker 已成过去式,是时候向前看了

大迁世界 • 1 年前 • 265 次点击  

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

Docker 曾经是 DevOps 的代名词,风光了近十年。

但时代变了。到了 2025 年,如果还在把 Docker 当成万能药,那你就该好好审视一下现状了。

这篇文章不是为了吐槽 Docker,而是实事求是地告诉你 Docker 为什么已经逐渐淡出舞台,以及现代基础设施团队现在用什么来代替它。


📌 Docker 做对了什么?

Docker 的确改变了我们对基础设施的看法:

  • 用轻量级的容器取代虚拟机。
  • 更加轻便、可移植、快速启动。
  • 开发者能轻松地将应用“Dockerize”。
  • 简化了 CI/CD 流程。
  • Kubernetes 早期默认采用 Docker 作为容器运行时。

在 2013 到 2018 年之间,这种容器化模式确实非常成功。

但后来,问题逐渐暴露。


📌 Docker 究竟出了什么问题?

1. Docker Daemon 问题严重

Docker 依赖一个长期运行的单一进程:Docker Daemon,意味着:

  • 单点故障。
  • 以 root 权限运行,潜在安全风险高。
  • 调试 daemon 极为困难,进程一旦出问题就全部瘫痪。

相比之下,其他方案如 containerd 或 CRI-O 并不需要这样一个中心化的守护进程,速度更快,权限更低:

# Docker 传统方式运行
docker run nginx

# containerd 运行(更简单、更安全)
ctr run --rm docker.io/library/nginx:latest nginx /bin/sh

2. Docker Desktop 收费问题

Docker 在企业环境对 Docker Desktop 开始收费,这一决定让大量开发者措手不及:

  • 企业团队纷纷寻找其他方案,如 Podman、Rancher Desktop 或 Colima。
  • 开发者极其不喜欢工具链中的突发变化。

3. Kubernetes 已放弃 Docker

注意:Kubernetes 并未放弃容器技术,而是放弃了 Docker 作为运行时。

现在,Kubernetes 主推的是支持 CRI 接口的原生容器运行时,如 containerd 和 CRI-O。

容器运行时变化前后的 Kubernetes 容器生命周期:

+------------------+                 +------------------+
|  kubelet         |                 |  kubelet         |
+--------+---------+                 +--------+---------+
         |                                  |
+--------v----------+               +-------v-----------+
|  Docker Daemon    |               | containerd/CRI-O  |
+--------+----------+               +-------+-----------+
         |                                  |
    +----v-----+                      +-----v-----+
    | container|                      | container |
    +----------+                      +-----------+

Docker 因为缺乏原生 CRI 支持,导致引入额外的 shim 层,增加复杂度。


4. Podman 已经优于 Docker(多数场景)

Podman 几乎能无缝替代 Docker,并且更优秀:

  • 无 Daemon 进程
  • 可非 root 用户运行
  • Docker 命令完全兼容



    
# Docker 命令
docker build -t my-app .

# Podman 命令(完全一样)
podman build -t my-app .

你甚至可以直接 alias:

alias docker=podman

开发者几乎不会察觉区别,而 Podman 更快、更安全。


📌 Docker 之后,你该用什么替代?

下面这些方案值得你立刻切换:

场景
推荐工具
特点
本地开发环境
Podman, Colima, nerdctl
轻量、快速、免费,无需 Docker Desktop
CI/CD 流程
containerd
效率更高,与 K8s 原生集成好,无 Daemon
Kubernetes 容器运行时
CRI-O, containerd
原生 CRI,无需 shim
桌面 GUI 用户
Rancher Desktop
GUI 操作友好,无需额外付费

📌 DockerHub 怎么办?

DockerHub 仍是镜像托管的主流,但你无需再使用 Docker 来拉取镜像,可以用  skopeo 或 ctr 等工具:

skopeo copy docker://nginx:latest dir:/tmp/nginx

📌 一个真实的迁移案例

我们团队原本使用 Docker 和 Docker Compose 本地开发微服务。但出现了问题:

  • 开发环境不一致
  • CI 构建耗时太长
  • Docker Desktop 许可证问题

于是我们进行了如下迁移:

  • Docker Compose → podman-compose
  • Docker → nerdctl + containerd(CI 环境)
  • Docker Desktop → Rancher Desktop(有 GUI 需求成员)

迁移后结果:

  • CI 构建提速了 30%
  • 许可证问题归零
  • 团队迁移到 Podman 零成本,无摩擦

📌 总结

Docker 并非彻底“死亡”,它只是逐渐失去必要性。

就像曾经的 jQuery,它解决了特定历史时期的问题,而如今已有更优秀的方案出现。

如果到 2025 年你还默认用 Docker,请问自己:

“Docker 真能帮到我,还是我只是习惯了它?”

也许,是时候尝试新的、更现代化的容器工具链了。

前端AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

图片


最后:
深入React:从基础到最佳实践完整攻略
python 技巧精讲
React Hook 深入浅出
CSS技巧与案例详解
vue2与vue3技巧合集



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185267