nignx - docker内nginx 80端口被占用
问题描述
[root@8f52078ea4e6 config]# nginxnginx: [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
问题解答
回答1:不是很确定,但是和docker的端口映射应该是没关系的,docker的关系映射相当于是再virtual box里面配了一个端口匹配规则,不会占用这个端口的,相当于外部端口转发到内部容器端口里。所以你这个错误应该是docker内部端口被占了。试一下lsof -i :80看看
回答2:用的什么镜像? 如果官方的nginx的话, nginx进程已经启动了, 这时你当然不能再在80上启动另一个
回答3:题主可以进入nginx的docker container实例,查看一下nginx是否已经启动:
ps -ef | grep nginx# ornetstat -ntpl | grep 80
如果已经启动,则不需要在重复启动了
回答4:你这已经是在容器中了吧,你的nginx容器启动后,80端口就已经起来了,你在运行nginx,肯定显示被占用了。
相关文章:
1. javascript - Ajax加载Json时,移动端页面向左上角缩小一截儿,加载完成后才正常显示,这该如何解决?2. css - 如何讓圖片像雲一樣的行為?3. python小白 想做一个能够计算圆周率的代码,不知道怎么写4. javascript - h5 video层级太高导致浮在div上面,如何解决?5. mysql - 数据库建表方面的问题?6. javascript - 解释下这种函数定义7. javascript - 如何获取未来元素的父元素在页面中所有相同元素中是第几个?8. python中怎么对列表以区间进行统计?9. java - 多客户端如何操作MQ比较合适10. css - C#与java开发Windows程序哪个好?
