nignx - docker內(nèi)nginx 80端口被占用
問(wèn)題描述
[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容器配置的端口對(duì)應(yīng)關(guān)系: 22/tcp, 0.0.0.0:80->80/tcp
問(wèn)題解答
回答1:不是很確定,但是和docker的端口映射應(yīng)該是沒(méi)關(guān)系的,docker的關(guān)系映射相當(dāng)于是再virtual box里面配了一個(gè)端口匹配規(guī)則,不會(huì)占用這個(gè)端口的,相當(dāng)于外部端口轉(zhuǎn)發(fā)到內(nèi)部容器端口里。所以你這個(gè)錯(cuò)誤應(yīng)該是docker內(nèi)部端口被占了。試一下lsof -i :80看看
回答2:用的什么鏡像? 如果官方的nginx的話, nginx進(jìn)程已經(jīng)啟動(dòng)了, 這時(shí)你當(dāng)然不能再在80上啟動(dòng)另一個(gè)
回答3:題主可以進(jìn)入nginx的docker container實(shí)例,查看一下nginx是否已經(jīng)啟動(dòng):
ps -ef | grep nginx# ornetstat -ntpl | grep 80
如果已經(jīng)啟動(dòng),則不需要在重復(fù)啟動(dòng)了
回答4:你這已經(jīng)是在容器中了吧,你的nginx容器啟動(dòng)后,80端口就已經(jīng)起來(lái)了,你在運(yùn)行nginx,肯定顯示被占用了。
相關(guān)文章:
1. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因2. docker api 開(kāi)發(fā)的端口怎么獲取?3. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問(wèn)題 麻煩幫我看一下4. angular.js - 關(guān)于$apply()5. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???6. 如何解決Centos下Docker服務(wù)啟動(dòng)無(wú)響應(yīng),且輸入docker命令無(wú)響應(yīng)?7. css - C#與java開(kāi)發(fā)Windows程序哪個(gè)好?8. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?9. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。10. Angular.js 無(wú)法設(shè)置Authorization頭,該怎么解決?
