搜索

📄 文章 📚 合集
热门搜索
🐘 PHP ⚡ Laravel 🎨 Vue.js ⚛️ React 📦 Yii 📘 JavaScript 🗄️ MySQL 🐳 Docker
返回合集

[板块7:Docker 容器化交付] - 08 -Docker 部署服务器端口配置

代码示例
# 好站站企业建站引擎 - 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。

🧸 adorable code

专注 PHP、JavaScript、Laravel、Vue.js、React、Yii 全栈开发。记录技术探索过程中的灵感与经验,分享工程实践洞见。

hello@adorablecode.com