Docker Compose 详解:从多容器编排到完整开发环境

单独使用 Docker 时,我们通常需要执行: docker run 来启动一个容器。 但一个实际项目往往并不只有一个容器。 例如一个 PHP/Hyperf 项目可能需要: Nginx PHP / Hyperf MySQL Redis RabbitMQ 如果全部手动使用 docker run 管理,不仅命令很长,而且容器之间的网络、Volume、环境变量、启动顺序等都需要自己维护。 Docker Compose 就是为解决这个问题而设计的。 Docker 官方将 Compose 定义为用于定义和运行多容器应用的工具,可以在一个 Compose 文件中定义服务、网络和 Volume,并通过命令统一管理整个应用栈。当前推荐使用 Compose Specification。 1. Docker Compose 是什么 Docker Compose 的核心思想是: 一个应用 │ ├── PHP ├── Nginx ├── MySQL └── Redis │ ▼ compose.yaml │ ▼ docker compose up -d 也就是说: Docker 负责容器,Compose 负责组织容器。 例如: services: php: image: php:8.3-cli mysql: image: mysql:8....

2024年05月06日 · 6 min · Leanku

Docker 使用详解:从安装配置到常用命令实战

Docker 使用详解:从安装配置到常用命令实战 Docker 已经成为后端开发和部署中非常常见的基础工具。 无论是本地开发,还是测试、CI/CD、服务器部署,都经常会遇到: MySQL Redis RabbitMQ Nginx PHP Node.js Python 这些服务都可以通过 Docker 快速运行。 相比直接在操作系统中安装各种软件,Docker 最大的优势之一是: 把应用及其运行环境封装成容器,让开发、测试和部署环境更加一致。 本文不深入讨论 Docker 底层实现,而是以实际使用为主,从安装开始,重点介绍日常开发中最常用的 Docker 命令。 1. Docker 是什么? Docker 是一个容器化平台。 传统方式安装一个 PHP 项目,可能需要: 操作系统 ↓ PHP ↓ PHP 扩展 ↓ Composer ↓ Nginx ↓ MySQL ↓ Redis 不同开发者的电脑可能存在: PHP 版本不同 MySQL 版本不同 扩展不同 配置不同 系统环境不同 于是就容易出现: “我的电脑上可以运行,你的电脑为什么不行?” Docker 的思路是把应用运行环境标准化。 例如: Docker ├── PHP 8.3 ├── Nginx ├── MySQL 8 └── Redis 每个服务运行在独立容器中。...

2024年05月05日 · 6 min · Leanku