You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在本地启动两个Nginx Docker容器?启动异常解决方法

问题描述

使用docker-compose up -d命令启动两个Nginx Docker容器时,仅能成功启动其中一个。需要实现本地同时运行两个容器的方法,尤其是通过修改端口配置来达成的具体操作。

两个项目的Nginx容器配置如下:

第一个项目Nginx配置

nginx:
    image: nginx:alpine
    volumes:
      - ${APP_PATH_HOST:-./}:/var/www/html
      - .docker/nginx/default:/etc/nginx/conf.d/default.conf
      - ./localhost.crt:/etc/ssl/certs/localhost.crt
      - ./localhost.key:/etc/ssl/private/localhost.key
    ports:
      - "${HOST_HTTP_PORT:-80}:80"
      - "443:443"
    depends_on:
      - php-fpm
    networks:
      - app-network

第二个项目Nginx配置

nginx:
    image: nginx:alpine
    volumes:
      - ${APP_PATH_HOST:-./}:/var/www/html
      - .docker/nginx/default:/etc/nginx/conf.d/default.conf
      - ./localhost.crt:/etc/ssl/certs/localhost.crt
      - ./localhost.key:/etc/ssl/private/localhost.key
    ports:
      - "${HOST_HTTP_PORT:-8080}:80"
      - "4430:443"
      - "2022:2022"
    depends_on:
      - laraphp-fpm
    networks:
      - proxynet
已验证的解决方案

核心问题在于宿主机端口冲突:两个容器不能同时绑定到宿主机的同一个端口上。通过自定义环境变量修改第二个容器的HTTP宿主机端口即可解决:

在第二个项目的.env文件中添加以下配置:

HOST_HTTP_PORT=90

修改后,第一个容器默认使用宿主机的80端口,第二个容器使用90端口,两个容器可以正常启动并运行。

内容的提问来源于stack exchange,提问作者Mica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 19:05:33