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

时间:2017-05-20 19:06:53

标签: django docker docker-for-mac

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

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

在容器内部,我使用命令python manage.py runserver 80

运行我的django应用程序

但是我无法使用以下任何一种方式查看页面:

1。localhost:8000

2。127.0.0.1:8000

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

1 个答案:

答案 0 :(得分:13)

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

python manage.py runserver 80

这将在127.0.0.1:80上运行服务器。 docker容器中的localhost不是计算机上的localhost。所以解决方案是使用以下命令运行服务器:

python manage.py runserver 0.0.0.0:80

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