什么时候使用docker?

核心:docker是解决环境不一致问题,那么开发、测试、生产环境不一致时,一定用docker。那么其他情况如下:
1. 应用服务优先 Docker 或者 如果某个配置特别复杂优先使用docker(最好创建镜像服务);
2. 基础设施/数据库看情况;
3. 对性能、硬件、系统内核高度敏感的服务优先原生。

下面是常见的在什么情况下使用docker 和什么情况下不使用

场景 推荐 原因
PHP Web 项目 Docker 环境隔离、部署方便
Python Web/API Docker Python 依赖容易冲突
Node.js Docker Node 版本、依赖隔离
Go Web 服务 Docker / 原生都可以 Go 本身部署非常简单
Nginx Docker / 原生都可以 性能差异很小
Redis Docker / 原生都可以 一般没有明显性能问题
MySQL 生产环境倾向原生/云数据库 IO、备份、运维更重要
PostgreSQL 生产环境倾向原生/云数据库 IO、备份、运维更重要
GPU 推理服务 视情况,通常 Docker CUDA/驱动/依赖复杂
Kubernetes Node 原生安装 Docker/containerd 容器运行时本身是基础设施
高性能网络服务 倾向原生 避免额外网络层
大量磁盘 IO 倾向原生 减少存储抽象层
单机简单脚本 原生 Docker 反而增加复杂度
临时测试环境 Docker 创建、销毁非常方便
CI/CD Docker 环境一致性非常重要
多个项目共存 Docker 隔离不同版本依赖
只有一个 PHP 项目的小服务器 两者皆可 看维护习惯