94 lines
2.7 KiB
Markdown
94 lines
2.7 KiB
Markdown
# Docker Windows 新手启动指南
|
||
|
||
本地 Windows 开发环境启动 MySQL / Redis / RabbitMQ 三个容器。
|
||
|
||
## 前置条件
|
||
|
||
- 已安装并启动 **Docker Desktop**(任务栏图标变绿才算启动完成)
|
||
|
||
## 首次启动(只做一次)
|
||
|
||
1. 创建 MySQL 数据卷:
|
||
|
||
```powershell
|
||
docker volume create changzhou_mysql_data
|
||
```
|
||
|
||
2. 启动容器(⚠️ 必须先 cd 到 compose 目录,且必须带两个 -f 参数):
|
||
|
||
```powershell
|
||
cd d:\changzhou_app\changzhou_backend\docker\compose
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
|
||
```
|
||
|
||
> ⚠️ **不要只执行 `docker-compose up -d`**!
|
||
> 少了 `-f docker-compose.dev.yml` 会导致 Redis 容器找不到 redis.conf,
|
||
> 状态一直是 Restarting 无限重启。
|
||
> dev 覆盖文件负责把 `docker/config/redis/redis.dev.conf` 挂载进容器。
|
||
|
||
3. 验证:
|
||
|
||
```powershell
|
||
docker ps
|
||
# 三个容器都应为 Up 状态:mysql_db / redis_cache / rabbitmq_server
|
||
|
||
docker exec redis_cache redis-cli ping
|
||
# 返回 NOAUTH Authentication required. 是正常的(Redis 已启动且带密码)
|
||
```
|
||
|
||
## 端口对照表(宿主机 → 容器)
|
||
|
||
| 服务 | 本机地址 | 容器端口 | 账号信息 |
|
||
|------|---------|---------|---------|
|
||
| MySQL | 127.0.0.1:23306 | 3306 | root/123456,业务库 changzhou |
|
||
| Redis | 127.0.0.1:26379 | 6379 | 密码见 redis.dev.conf |
|
||
| RabbitMQ | 127.0.0.1:25672 | 5672 | skins/mk,vhost /skins |
|
||
| RabbitMQ 管理台 | http://127.0.0.1:35672 | 15672 | skins/mk |
|
||
|
||
## 日常操作
|
||
|
||
```powershell
|
||
# 都在 docker\compose 目录下执行
|
||
cd d:\changzhou_app\changzhou_backend\docker\compose
|
||
|
||
# 启动
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
|
||
|
||
# 停止
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml stop
|
||
|
||
# 查看状态
|
||
docker ps
|
||
|
||
# 查看某个容器日志
|
||
docker logs redis_cache --tail 50
|
||
|
||
# 重建某个容器(比如改了配置)
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --force-recreate redis
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### 1. Redis 一直 Restarting
|
||
|
||
启动命令少了 `-f docker-compose.dev.yml`,重建即可:
|
||
|
||
```powershell
|
||
cd d:\changzhou_app\changzhou_backend\docker\compose
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --force-recreate redis
|
||
```
|
||
|
||
### 2. 提示 `external volume "changzhou_mysql_data" not found`
|
||
|
||
```powershell
|
||
docker volume create changzhou_mysql_data
|
||
```
|
||
|
||
### 3. 提示 `cannot find the file specified`
|
||
|
||
没有 cd 到 `docker\compose` 目录就执行了命令,`-f` 的相对路径按当前目录解析。
|
||
|
||
### 4. 和 chengdu 项目切换
|
||
|
||
端口可能冲突,先到另一个项目的 compose 目录执行 `docker-compose stop`,再启动本项目。
|