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

Joh*_*ult 24 port docker

我是新手,正在尝试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.
Run Code Online (Sandbox Code Playgroud)

请帮我

ken*_*ken 24

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

docker run -p 5001:5000 flask_demo:v0
Run Code Online (Sandbox Code Playgroud)

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

  • 最好找到已经绑定到该端口的内容。它很可能是同一个容器的另一个实例,OP 不知道该实例正在运行(刚开始使用 Docker 时很容易做到) (5认同)

Han*_*ian 5

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

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

docker ps -a
Run Code Online (Sandbox Code Playgroud)

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

docker rm <container name>
Run Code Online (Sandbox Code Playgroud)

现在该端口再次可用。

如果您认为容器退出后不需要查看容器,可以将参数添加--rm到 docker run 命令中,容器退出时会自动删除。像这样

docker run -p 5000:5000 --rm flask_demo:v0
Run Code Online (Sandbox Code Playgroud)