什么时候用docker
什么时候使用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 项目的小服务器 | 两者皆可 | 看维护习惯 |