为什么我无法启动服务网络?

Why i cannot start service web?

请帮我解决这个错误。

ERROR: for web Cannot start service web: driver failed programming external connectivity on endpoint semestral_dj01 (335d0ad4599512f3228b4ed0bd1bfed96f54af57cff4a553d88635f80ac2e26c): Bind for 0.0.0.0:8000 failed: port is already allocated ERROR: Encountered errors while bringing up the project.

转到终端并运行命令:

lsof -i:8000 

其中 8000 是端口号。

结果会是这样的:

COMMAND     PID         USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
Python      123456      user   ab   type  123    000      TCP  0.0.0.0:8000

终端中的 运行 命令:

kill -9 <PID>

喜欢

kill -9 123456

然后再运行你的服务器,问题就解决了。

在我的开发环境中,这种情况时常发生在我身上。通常我必须重新启动 docker 服务才能使其正常工作。

我遇到了一个非常相似的错误。就我而言,我最近在 Linux 盒子上升级了本机 nginx 版本。升级后,nginx自动启动了(之前没注意)。当我使用 nginx 部署 docker 映像时,2 nginx 实例竞争同一个端口(原生和 docker)。

我看到了:

> sudo netstat -nl -p tcp  | grep 443
tcp     0a     0 0.0.0.0:443     0.0.0.0:*     LISTEN     #####/nginx: master
tcp6    0      0 :::443          :::*          LISTEN     #####/nginx: master

这有点令人困惑,因为我试图让 nginx 到 运行,它说 nginx 正在使用港口。在我输入 docker-compose down 后,我意识到 nginx 仍在使用该端口,即使 nginx 容器已被破坏。这让我意识到原生 nginx 已经再次启动,即使我没有手动启动它。

我的错误信息:

Cannot start service <webserver>: driver failed programming external connectivity on endpoint <server_instance>_webserver (...<guid>...): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use

我解决这个问题的方法是停止正在执行的容器并执行我想启动的容器。

在您的 CMD 中使用此命令停止容器:

docker stop $(docker ps -a -q)

如果您可能想删除它们,请使用:

docker rm $(docker ps -a -q)