Docker 本地开发指南

使用 Docker 与 Docker Compose 在 localhost 运行 MySQL、Redis、PostgreSQL、Nginx 等,统一本地开发环境。


Docker 通过容器隔离依赖,是现代本地开发最常用的环境方案。数据库、缓存、反向代理均可映射到 localhost 端口,与宿主机上的 Node、PHP、Python 应用联调。

典型 localhost 映射

服务容器内端口宿主机访问
MySQL3306localhost:3306(TCP)
PostgreSQL5432localhost:5432
Redis6379localhost:6379
Nginx80http://localhost:8080
Node 应用3000http://localhost:3000

映射格式 -p 宿主机端口:容器端口,例如 -p 8080:80 表示浏览器访问 http://localhost:8080 进入容器内 80 端口的 Nginx。

Docker Compose 示例

docker-compose.yml

services:
  db:
    image: mysql:8
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: app
  redis:
    image: redis:7
    ports:
      - '6379:6379'
  web:
    build: .
    ports:
      - '3000:3000'
    depends_on:
      - db
      - redis

启动:

docker compose up -d

应用连接字符串使用 宿主机视角:数据库主机填 localhost(或 127.0.0.1),端口为映射后的端口。

与 XAMPP 对比

DockerXAMPP
隔离容器级,多项目互不干扰全局安装,易版本冲突
启动docker compose up控制面板 Start
适用全栈、微服务、团队统一环境快速 PHP/MySQL 入门

常用命令

docker ps                    # 运行中的容器
docker compose logs -f web   # 查看日志
docker compose down          # 停止并删除容器
docker exec -it <id> bash    # 进入容器

常见问题

端口已被占用
修改 ports 左侧宿主机端口,如 3307:3306;或停止本机已有的 MySQL/XAMPP 服务。

Mac/Windows 文件挂载慢
大量小文件项目可将 node_modules 放入 named volume,或使用 Dev Containers。

容器内访问宿主机
Linux 可用 host.docker.internal(Docker Desktop 亦支持)访问宿主机上运行的 API。

小结

Docker 将服务映射到 localhost 各端口,是替代「本机装一堆数据库」的现代方案;配合 Compose 可一键复现团队生产环境。

访客计数:------ Best viewed in Netscape Navigator · 800×600 © LocalHost Run