Docker - 绑定 0.0.0.0:4000 失败:端口已分配

新手上路,请多包涵

我第一次使用 docker,我试图实现这个 - https://docs.docker.com/get-started/part2/#tag-the-image

在一个阶段,我试图通过这个命令与 localhost 连接 -

 $ curl http://localhost:4000

显示了这个错误-

 curl: (7) Failed to connect to localhost port 4000: Connection refused

但是,我已经通过以下代码解决了这个问题 -

 $ docker-machine ip default
$ curl http://192.168.99.100:4000

之后一切都很好,但在最后一部分,我试图根据教程使用以下行来运行应用程序……

 $ docker run -p 4000:80 anibar/get-started:part1

但是,我收到了这个错误

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint goofy_bohr (63f5691ef18ad6d6389ef52c56198389c7a627e5fa4a79133d6bbf13953a7c98): Bind for 0.0.0.0:4000 failed: port is already allocated.

原文由 Anik Barua 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 632
2 个回答

在启动使用相同端口的新容器之前,您需要确保之前启动的容器已被杀死。

 docker container ls
docker rm -f <container-name>

原文由 yamenk 发布,翻译遵循 CC BY-SA 3.0 许可协议

向 IgorBeaz 致敬,您需要停止运行当前容器。为此,您将知道当前的 CONTAINER ID:

 $ docker container ls

你会得到类似的东西:

 CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
12a32e8928ef        friendlyhello       "python app.py"     51 seconds ago      Up 50 seconds       0.0.0.0:4000->80/tcp   romantic_tesla

然后通过以下方式停止容器:

 $ docker stop 12a32e8928ef

最后你尝试做你想做的事,例如:

 $ docker run -p 4000:80 friendlyhello

原文由 user5965280 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题