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

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

在一个阶段,我试图通过这个命令与本地主机连接 –

$ 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. 

似乎港口分配,所以你可以请帮助我告诉我如何解决这个..非常感谢:)

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

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

向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