nignx - docker内nginx 80端口被占用
天蓬老师
天蓬老师 2017-04-24 15:59:58
[Docker讨论组]

[root@8f52078ea4e6 config]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

docker容器配置的端口对应关系: 22/tcp, 0.0.0.0:80->80/tcp

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
PHPz

不是很确定,但是和docker的端口映射应该是没关系的,docker的关系映射相当于是再virtual box里面配了一个端口匹配规则,不会占用这个端口的,相当于外部端口转发到内部容器端口里。
所以你这个错误应该是docker内部端口被占了。试一下lsof -i :80看看

高洛峰

用的什么镜像?
如果官方的nginx的话, nginx进程已经启动了, 这时你当然不能再在80上启动另一个

怪我咯

题主可以进入nginx的docker container实例,查看一下nginx是否已经启动:

ps -ef | grep nginx
# or
netstat -ntpl | grep 80

如果已经启动,则不需要在重复启动了

我想大声告诉你


你这已经是在容器中了吧,你的nginx容器启动后,80端口就已经起来了,你在运行nginx,肯定显示被占用了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号