如何在本地启动两个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
相关产品推荐
相关产品推荐

