看你上传的截图和文档,问题已经很清楚了。你的容器名叫 xfyun-nginx,而且你修改了 docker-compose.yml 里的端口映射 ,但 restart 不生效。
restart 只是重启容器进程,不会重新读取 yml 文件的配置变更 。端口映射属于容器的基础配置,必须重建容器才能生效。
推荐做法:一步重建(最简洁)
bash
docker compose -f docker-compose.yml up -d --force-recreate nginx
--force-recreate:强制重建容器,应用新端口配置nginx:只操作 nginx 服务,不影响其他服务
稳妥做法:先停后建(和你文档里一样)
如果你担心一步重建有问题,可以分三步执行:
第一步:停止 nginx
bash
docker compose -f docker-compose.yml stop nginx
第二步:删除旧容器
bash
docker compose -f docker-compose.yml rm -f nginx
第三步:用新配置启动
bash
docker compose -f docker-compose.yml up -d nginx
先确认文件名
如果你的配置文件不叫 docker-compose.yml,先查一下:
bash
ls
然后把上面命令里的 docker-compose.yml 换成你实际的文件名(比如 docker-compose-prod.yml)。
验证端口是否生效
执行完后检查:
bash
docker compose ps nginx
或者:
bash
docker port xfyun-nginx
应该能看到你新配置的 10013 和 20012-20020 端口已经映射上了。