【问题标题】:How to access Django app in docker container from another machine?如何从另一台机器访问 docker 容器中的 Django 应用程序?
【发布时间】:2021-10-28 22:07:23
【问题描述】:

我对 Docker 和 Django 还是很陌生。所以我所做的是,将腻子添加到 linux 服务器并在根目录中创建一个文件夹,然后使用 django-admin startproject 我开始了一个新项目。 现在,由于我使用 putty 进行 ssh 终端访问,我将无法访问 linux 机器中的浏览器,然后 ping 127.0.0.1:8000 以查看是否“恭喜!” Django 的屏幕是否可见。

所以我假设服务器可能在runserver 命令之后运行。然后使用docker我在linux机器上准备了一个容器,我已经暴露了9000端口。我也无法访问这个容器,因为我无法访问linux机器中的浏览器。现在,我有以下三个问题:

1.) 如何使用我的 windows 机器访问这个 docker 容器(在 linux 机器内)?我的意思是,如果我在 Windows 机器上打开 google chrome 浏览器,然后输入一些 url:port,我能看到“恭喜!”在 Windows 上的浏览​​器上显示屏幕?

2.) 我对这个容器网络端口和 ip 的工作方式感到很困惑(我的意思是主机或任何其他电脑如何访问这个 docker 容器)我尝试查找许多文档和 youtube 视频,但我很困惑.因为我知道要让外部世界访问您的网站/应用程序,我们需要将域名托管在我们需要付费的某个云上,但是 docker 怎么能免费做到这一点呢?可能听起来很蹩脚,但请帮助我理解。

3.) 我的 docker run 命令应该如何从我的 Windows 机器访问?

我的码头文件:

FROM python:3.6-slim

ENV PYTHONUNBUFFERED=1

RUN mkdir /Django

WORKDIR /Django

ADD . /Django

RUN pip install -r requirements.txt

EXPOSE 9000

CMD python manage.py runserver 0.0.0.0:9000

我正在使用以下命令来构建:

docker build -t myproj .

请帮助澄清我的问题。我将永远感激:) 谢谢大家!

【问题讨论】:

    标签: django linux docker docker-compose


    【解决方案1】:

    运行容器时,需要docker run -p 选项:

    docker run -p 12345:9000 myproj
    

    第二个端口号必须与实际服务器进程正在侦听的端口号匹配(在您的情况下,端口参数为./manage.py runserver)。第一个端口号可以是主机系统上未使用的任何端口号。

    然后(取决于网络和防火墙限制)另一个系统可以通过使用主机的 IP 地址和第一个端口号来访问容器; http://my-dev-system.internal.example.com:12345。如果您直接从主机呼叫,那么这两个系统是相同的,在这种特殊情况下,您可以使用http://localhost:12345

    作为一个实现细节,容器恰好有自己的 IP 地址,但您永远不需要查找或使用它。 (除其他问题外,其他机器无法访问它。)从其他系统的角度来看,基于 Docker 的进程与直接在主机上运行的进程没有区别。 Docker 没有解决需要在某个地方托管应用程序、为主机提供 DNS 名称或其他类似问题的问题。

    【讨论】:

      【解决方案2】:

      尝试在不使用EXPOSE 9000 的情况下运行它,当您公开端口时,它仅在容器内部可见,而对外部世界不可见。完成后,转到浏览器并导航到<server_ip>:9000,您可能会看到该消息。

      【讨论】:

      • 感谢您的回复 :) 我尝试这样做,但它告诉我网站响应时间过长。 linux机器有一个密码,我在putty打开终端后输入。这可能是问题吗?
      猜你喜欢
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 2017-07-12
      • 1970-01-01
      相关资源
      最近更新 更多