在 Mac 上搭建服务器,先安装开发工具链与包管理器:安装 Xcode Command Line Tools、Homebrew,以及建议安装 Docker Desktop。确保系统更新并开启必要的防火墙或端口转发设置。
1)安装 Xcode CLI:xcode-select --install;2)安装 Homebrew;3)下载并安装 Docker Desktop(启用虚拟化);4)配置 SSH(开启远程登录)并设置密钥;5)确认端口(如80/443/3306)是否被占用。
Mac 的文件共享性能(osxfs)可能影响容器 I/O,建议把数据库数据放到 Docker 卷而非挂载宿主目录;保证 Docker Desktop 的资源(CPU/内存)足够。
使用 Docker 官方镜像或通过 docker-compose 快速启动 Nginx。主要配置端口映射、挂载配置文件与站点目录,并设置重启策略与日志管理。
docker-compose.yml 常见写法:services: nginx: image: nginx:stable ports: - "80:80" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./html:/usr/share/nginx/html restart: unless-stopped。通过自定义 conf 实现反向代理或静态托管。
启动后用 docker logs 和 curl localhost:80 检查;若在 Mac 上访问报错,检查 Docker Desktop 的端口映射与防火墙设置,必要时重启 Docker。
推荐使用官方镜像并通过 Docker 卷(volumes)持久化数据,而不是直接挂载宿主目录。通过环境变量初始化用户与数据库,使用备份策略保证数据安全。
示例:volumes: db-data:/var/lib/mysql 或 postgres:/var/lib/postgresql/data;环境变量 MYSQL_ROOT_PASSWORD、POSTGRES_PASSWORD、POSTGRES_DB;使用 healthcheck、restart 策略与定期备份(pg_dump/mysqldump 存储到外部)。
在 Mac 上注意 I/O 性能问题,尽量使用命名卷;为生产数据库设置资源限制、网络隔离,并避免在 Dockerfile 中写入明文密码,使用 secret 或环境管理工具。
使用 docker-compose 创建自定义网络,Nginx 容器通过服务名访问后端容器。Nginx 配置中使用 upstream 指向后端服务名与端口,实现反向代理与负载均衡。
docker-compose.yml 指定 networks: app_net,并在各服务中加入 networks: - app_net。Nginx 配置示例:upstream app { server app:3000; } server { location / { proxy_pass http://app; proxy_set_header Host $host; } }
在 Mac 本地测试可用自签名证书,线上建议在 Nginx 中使用 Let's Encrypt(Certbot)或在宿主机外部终端处理证书再挂载到容器;注意 443 端口映射与防火墙规则。
常见问题包括端口冲突、文件权限、I/O 性能瓶颈、资源配额不足和日志膨胀。优化方向是合理分配 Docker 资源、使用卷而非绑定挂载、配置缓存与连接池。
1)调整 Docker Desktop CPU/内存;2)使用命名卷、避免大量小文件直挂载宿主;3)在 Nginx 开启 gzip、缓存静态资源;4)数据库使用连接池与索引优化,定期清理日志与慢查询。
定位问题时先看容器日志(docker logs)、容器状态(docker ps、docker inspect)与网络(docker network inspect);若性能差,排查是否为 Mac 文件共享或资源限制导致,而非应用本身。
