我尝试在Mac上运行nginx服务器:
docker container run --publish 80:80 nginx
它正在返回此错误。
docker:来自守护程序的错误响应:驱动程序无法在端点上编程外部连接hungry_shtern(88e68bd0a448ebe25a62c1c897d38a58e7cc581736ea55a0b764197d0416fce6):启动userland代理时出错:绑定0.0.0.0:80:意外错误(EADDRINUSE失败)。
如何解决这个问题?
答案 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
。