我第一次使用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.

当前回答

以上两个答案是正确的,但对我不适用。

我一直看到像下面这样的码头集装箱的空白 然后我尝试,docker容器ls -a之后,它显示了所有之前退出和运行的进程。 然后docker stop <容器id>或docker container stop <容器id>就不工作了 然后我尝试了docker rm -f <容器id>,它工作了。 现在,我尝试了docker容器ls -a,这个过程不存在。

其他回答

对于仍然在寻找解决方案的人,只需确保在docker-compose.yml中以正确的方式绑定了端口

它是: —<外部服务器端口>:<内部容器端口>

快速修复是一个重启docker:

Sudo服务停止 Sudo服务docker启动

我的案件被转储XD我暴露端口80两次:D

        ports:
            - '${APP_PORT:-80}:80'
            - '${APP_PORT:-8080}:8080'

APP_PORT被定义,因此80被公开了两次。

如果您正在使用Docker-Desktop,您可以退出Docker Desktop,然后重新启动它。这为我解决了问题。

我也有同样的问题。转到Mac仪表板的Docker,然后单击重启。问题解决了。