错误"绑定0.0.0.0:80:Docker中的意外错误(Failure EADDRINUSE)

时间:2018-05-10 03:14:19

标签: docker docker-compose docker-machine

我尝试在Mac上运行nginx服务器:

docker container run --publish 80:80 nginx

它正在返回此错误。

  

docker:来自守护程序的错误响应:驱动程序无法在端点上编程外部连接hungry_shtern(88e68bd0a448ebe25a62c1c897d38a58e7cc581736ea55a0b764197d0416fce6):启动userland代理时出错:绑定0.0.0.0:80:意外错误(EADDRINUSE失败)。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

也许端口80正在被另一个进程使用,您需要终止该进程或更改docker容器的绑定端口:

docker container run --publish 8080:80 nginx

答案 1 :(得分:0)

正如其他答案所指出的那样,该端口已被其他服务使用。

此服务是Mac上安装的默认Apache。

要确认,请尝试:

sudo lsof -i:80

如果您看到命令httpd出现在其中,则表明apache服务器正在运行,并且正在使用端口80。

您也可以尝试在浏览器上访问http://localhost:80。如果apache服务器正在运行,您会看到类似“它正常工作!”的信息。

要禁用此服务,请执行以下操作:

sudo apachectl -k stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

执行第一个命令后,您将能够将该端口与docker绑定。在第二秒之后,您将在启动时禁用apachectl