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. 正在使用electron和node.js做桌面应用,需要实时监听是否有网络连接,node或者electron是否可以做到2. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下3. python 计算两个时间相差的分钟数,超过一天时计算不对4. 做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?5. node.js - express框架,设置浏览器从缓存中读取静态文件,只有js从缓存中读取了,css还有一些图片为何没有从缓存中读取?6. python - flask post提交timestamp不能作为参数,这是为什么?7. vue.js - vue-router开启HTML5的history模式后nginx配置8. java - 如何点击按钮,重新运行(我是初学者)?9. node.js - nodejs+express+vue10. java - web端百度网盘的一个操作为什么要分两次请求服务器, 有什么好处吗

网公网安备