docker:来自守护进程的错误响应:端口不可用:侦听 tcp 0.0.0.0:5000:绑定:地址已在使用中[重复]

问题描述 投票:0回答:3

我是新手,正在尝试来自 DigitalOcean 的 本教程,但是当我这样做时

docker run -p 5000:5000 flask_demo:v0
,我收到以下错误。

码头工人:

Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5000: bind: address already in use.

请帮助我

docker port
3个回答
21
投票

然后你只需绑定另一个端口即可

docker run -p 5001:5000 flask_demo:v0

-p 5001:5000
基本上意味着,将我的
host machine
中的端口 5001 与容器中的端口 5000 绑定。由于端口 5000 已在您的主机中使用,那么您可以绑定另一个端口示例:端口 5001


5
投票

您之前可能运行过该应用程序一次。当 docker 容器退出时,它仍然在您的计算机上并分配了端口。

要查看您拥有哪些容器,请运行命令

docker ps -a

您可能会看到列出的旧容器,并且它正在使用端口 5000。 用

删除它
docker rm <container name>

现在端口再次可用。

如果您认为容器退出后不需要查看容器,可以在 docker run 命令中添加

--rm
参数,容器退出时会自动删除。像这样

docker run -p 5000:5000 --rm flask_demo:v0

1
投票

要查找占用端口的程序,首先要查找是什么进程占用了端口:

ss -aultnp | grep 5000

然后获取程序PID:

ps -ef | grep pid
© www.soinside.com 2019 - 2024. All rights reserved.