我是新手,正在尝试来自 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 run -p 5001:5000 flask_demo:v0
-p 5001:5000
基本上意味着,将我的 host machine
中的端口 5001 与容器中的端口 5000 绑定。由于端口 5000 已在您的主机中使用,那么您可以绑定另一个端口示例:端口 5001
您之前可能运行过该应用程序一次。当 docker 容器退出时,它仍然在您的计算机上并分配了端口。
要查看您拥有哪些容器,请运行命令
docker ps -a
您可能会看到列出的旧容器,并且它正在使用端口 5000。 用
删除它docker rm <container name>
现在端口再次可用。
如果您认为容器退出后不需要查看容器,可以在 docker run 命令中添加
--rm
参数,容器退出时会自动删除。像这样
docker run -p 5000:5000 --rm flask_demo:v0
要查找占用端口的程序,首先要查找是什么进程占用了端口:
ss -aultnp | grep 5000
然后获取程序PID:
ps -ef | grep pid