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. angular.js使用$resource服務把數據存入mongodb的問題。2. javascript - Ajax加載Json時,移動端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?3. mysql - 記得以前在哪里看過一個估算時間的網站4. 更新mysql中被別人鎖定的行, 能不能快速失敗直接報錯, 而不是一直等待5. javascript - h5 video層級太高導致浮在div上面,如何解決?6. mysql刪除一個空數據庫報錯Table storage engine for ’proc’ doe7. python運行后沒有任何反饋要怎么排查8. python小白 想做一個能夠計算圓周率的代碼,不知道怎么寫9. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?10. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?
