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