【问题标题】:Docker - Can't access Django serverDocker - 无法访问 Django 服务器
【发布时间】:2018-03-25 13:11:56
【问题描述】:

我无法通过容器中的端口连接到 django。我正在使用这个地址:0.0.0.0.:8000 并查看:http://joxi.ru/Dr8MeGLhkBWnLm。我正在使用一个命令创建一个图像和一个容器:'docker-compose up -d'。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
4fea50856eef        docker_web          "python manage.py ru…"   13 seconds ago      Up 11 seconds       0.0.0.0:8000->8000/tcp   docker_web_1

docker-compose.yaml

    version: '3'

    services:
      web:
        build:
          context: .
          dockerfile: /django.testsite/Dockerfile
        ports:
          - "8000:8000"

Dockerfile

    FROM python:3

    RUN easy_install pip
    RUN pip install django==1.9.12
    RUN pip install requests

    ADD . /.
    WORKDIR /django.testsite

    CMD ["python", "manage.py", "runserver", "8000"]

我该如何解决这个问题?

【问题讨论】:

    标签: python django docker docker-compose


    【解决方案1】:

    您的问题:

    CMD ["python", "manage.py", "runserver", "8000"]
    

    为了使其工作,您需要将其更改为:

    CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
    

    最后,在浏览器中转到http://127.0.0.1:8000/

    为什么?好吧,Python 认为你在 127.0.0.1 上公开它,而实际上你想要 eth0 地址,因为它可能会改变,而且我们不想对其进行硬编码,我们使用 0.0.0.0 表示“所有”接口。

    记住 docker 127.0.0.1 不是您的主机 127.0.0.1,每个 docker 容器都有自己的 loopback

    额外:如果你不想写出0.0.0.0,你可以直接写0——做同样的事情。

    【讨论】:

    • 不工作。当我运行容器“docker-compose up -d”时,它会自动停止。如果我使用“0.0.0.0:8000”,我会看到上一个错误:see image
    • @floatingpurr 是的,因为:网络!如果你查看netstat -a,你会看到0.0.0.0:8000上运行的东西——这意味着假设你连接到某个路由器并且你的IP是192.168.1.100,你将能够连接到你的端口8000,比如:192.168.1.1000:8000 AND 127.0.0.1:8000 AND 0.0.0.0:8000 - 这是正常的。我之前说过,0.0.0.0 表示 ALL 接口(您机器上的所有 ips)。如果您有任何其他疑问,请阅读本文jvns.ca/blog/2017/09/03/network-interfaces,它们会更详细地介绍
    • 好吧! netstat -na | grep 8000 正是输出了这个概念。谢谢@JavierBuzzi :)
    • 感谢您的回答。我必须做的轻微调整是将 IP 和端口项合并到“0.0.0.0:8010”中。我正在使用 ENTRYPOINT 指令。
    • 感谢您的回答。但我认为CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] 是正确的方式。
    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 2017-04-26
    • 2018-12-10
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2020-09-19
    相关资源
    最近更新 更多