[英]nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) on docker
[英]bind() to 0.0.0.0:80 failed (98: Address already in use) on docker
2019/03/09 17:33:58 [emerg] 81#0: still could not bind()
2019/03/09 17:34:01 [emerg] 82#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2019/03/09 17:34:01 [emerg] 82#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2019/03/09 17:34:01 [emerg] 82#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2019/03/09 17:34:01 [emerg] 82#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2019/03/09 17:34:01 [emerg] 82#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
https://github.com/zhengxidong/docker/blob/master/lnp7.2_supervisord_dockerfile/Dockerfile
使用supervisord
啟動多個服務。Nginx配置文件配置daemon off;
沒有出現錯誤日志,這是為什么?如果你把daemon off;
去掉daemon off;
, 無上述錯誤。
你已經運行了兩次 nginx:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 01:27 pts/0 00:00:00 /usr/bin/python /usr/bin/supervisord
root 9 1 0 01:27 pts/0 00:00:00 /usr/sbin/sshd -D
root 10 1 0 01:27 pts/0 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
root 11 1 0 01:27 pts/0 00:00:00 /usr/sbin/crond -n
root 12 1 0 01:27 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx <=============== Here
nginx 13 12 0 01:27 ? 00:00:00 nginx: worker process
nobody 14 10 0 01:27 pts/0 00:00:00 php-fpm: pool www
nobody 15 10 0 01:27 pts/0 00:00:00 php-fpm: pool www
root 68 0 0 01:29 pts/1 00:00:00 /bin/bash
root 84 1 0 01:29 pts/0 00:00:00 /usr/local/nginx/sbin/nginx <=== And Here
root 85 68 0 01:29 pts/1 00:00:00 ps -ef
第二個 nginx 無法運行,因為第一個已經運行。
NB
我建議您閱讀編寫 Dockerfile 的最佳實踐。 您的圖像在 10-15 分鍾內創建。
這意味着 nginx 或其他一些進程已經在使用端口 80。
您可以使用以下方法殺死它:
sudo fuser -k 80/tcp
然后再次嘗試重新啟動 nginx:
service nginx start
參考: https : //easyengine.io/tutorials/nginx/troubleshooting/emerg-bind-failed-98-address-already-in-use
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.