无法连接到 docker 容器内的服务器 运行(Docker for mac)

Can't connect to server running inside docker container (Docker for mac)

我的系统上有一个 docker 容器 运行ning,我开始使用此命令:

docker run -it  -v ~/some/dir -p 8000:80  3cce3211b735 bash

现在 docker ps 列出这个 :

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                             NAMES
44de7549d38e        3cce3211b735        "bash"              14 minutes ago      Up 14 minutes       22/tcp, 443/tcp, 8082/tcp, 0.0.0.0:8000->80/tcp   hardcore_engelbart

在容器内我 运行 我的 django 应用程序使用命令:python manage.py runserver 80

但是我无法查看使用其中任何一个的页面:

1.localhost:8000

2.127.0.0.1:8000

我知道我的 8000 端口映射到容器上的 80 端口。但为什么我无法访问它。我将 docker 用于 mac 而不是 docker 工具箱。如果您需要更多信息,请提供帮助和评论。

好的,我找到了解决问题的方法。问题不在 docker 端口映射中。实际问题是这一行:

python manage.py runserver 80

这 运行 是 127.0.0.1:80 上的服务器。 docker 容器内的本地主机不是您机器上的本地主机。所以解决方案是 运行 使用此命令连接服务器:

python manage.py runserver 0.0.0.0:80

之后我可以访问网页了。如果您 运行 遇到无法连接到 docker 容器内的 django 服务器 运行ning 的相同问题,您应该尝试 运行ning 服务器 0.0.0.0:port。您可以使用 localhost:port 在浏览器中访问它。希望这对某人有所帮助。