# 好站站企业建站引擎 - Docker 部署端口配置
## 场景说明
当服务器上已有其他 Web 服务(如宝塔面板、Apache、Nginx)占用 80 和 3306 端口时,需要修改 Docker 容器端口以避免冲突。
## 端口规划
| 服务 | 默认端口 | 备用端口(可自定义) |
|------|---------|-------------------|
| 网站访问 | 80 | 8080、8088、8888 等 |
| MySQL | 3306 | 3307、3308 等 |
## 配置步骤
### 1. 修改 docker-compose.yml
services:
nginx:
image: nginx:alpine
ports:
- "8088:80" # 修改宿主机端口为 8088
volumes:
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
networks:
- app-network
php:
image: codeyoursmile/haozhanzhan:latest
networks:
- app-network
mysql:
image: mysql:8.0
environment:
MYSQL_DATABASE: haozhanzhan
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3307:3306" # 修改宿主机端口为 3307
volumes:
- mysql_data:/var/lib/mysql
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
mysql_data:
### 2. 云服务器安全组放行
登录云服务商控制台(阿里云/腾讯云/华为云),在安全组规则中添加入方向:
| 参数 | 值 |
|------|-----|
| 协议 | TCP |
| 端口 | 8088 |
| 授权对象 | 0.0.0.0/0 |
### 3. 启动容器
docker-compose up -d
### 4. 访问地址
http://服务器IP:8088
## 数据库连接说明
| 连接场景 | 主机 | 端口 |
|---------|------|------|
| PHP 容器内连接 | `mysql` | `3306`(容器内部端口) |
| 外部工具连接(Navicat、宝塔) | 服务器IP | `3307`(宿主机映射端口) |
## 安装向导填写示例
| 字段 | 值 |
|------|-----|
| 数据库主机 | `mysql` |
| 端口 | `3306` |
| 数据库名 | `haozhanzhan` |
| 用户名 | `root` |
| 密码 | `123456` |
## 自定义端口
如需使用其他端口,只需修改 `docker-compose.yml` 中 `ports` 左边的数值:
```yaml
ports:
- "8888:80" # 访问端口改为 8888
- "3308:3306" # MySQL 端口改为 3308
```
## 常见问题
**Q:修改端口后无法访问?**
检查防火墙和安全组是否放行了对应端口。
**Q:数据库连接失败?**
确认安装向导中填写的是 `mysql:3306`,而不是宿主机 IP 和 3307。