我第一次使用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-compose中指定的相同端口冲突。Yml和docker-compose.override。Yml或使用环境变量显式指定的相同端口。

我有一个码头式的作曲。Yml,使用环境变量指定容器上的端口,以及docker-compose.override。Yml,使用显式指定的相同端口之一。显然码头工人试图在同一个集装箱上打开这两个集装箱。Docker容器ls -a都没有列出,因为容器无法启动并列出端口。

其他回答

停止容器对我来说也没用。我改变了docker-compose.yml中的端口。

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

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

它可能与docker-compose中指定的相同端口冲突。Yml和docker-compose.override。Yml或使用环境变量显式指定的相同端口。

我有一个码头式的作曲。Yml,使用环境变量指定容器上的端口,以及docker-compose.override。Yml,使用显式指定的相同端口之一。显然码头工人试图在同一个集装箱上打开这两个集装箱。Docker容器ls -a都没有列出,因为容器无法启动并列出端口。

Docker ps将显示在Docker上运行的容器列表。找到一个在您需要的端口上运行的程序,并记下它的PID。

使用以下命令停止并删除该容器:

docker stop PID
docker rm PID

现在运行docker-compose up,您的服务应该在释放所需端口后运行。

我有同样的问题与docker-compose,以修复它:

终止docker-proxy进程 重启码头工人 再次启动docker-compose