当前位置: 首页 > 面试题库 >

在Docker容器中看不到Django

郏志诚
2023-03-14
问题内容

我想在一个简单的Docker容器中运行Django。

首先,我使用Docker-file构建了我的容器。没有什么特别的(只有FROM,RUN和COPY命令)

然后我用命令运行容器

docker run -tid -p 8000:8000 --name <container_name> <image>

输入我的容器:

docker exec -it <container_name> bash

运行Django服务器:

python manage.py runserver

得到了:

Starting development server at http://127.0.0.1:8000/

但是当我转到127.0.0.1:8000时,我什么也看不到:

The 127.0.0.1 page isn’t working

没有Nginx或其他工作服务器。

我究竟做错了什么?

更新1(Dockerfile)

FROM ubuntu:16.04
MAINTAINER Max Malyshev <user>
COPY . /root
WORKDIR /root
RUN apt-get update
RUN apt-get install python-pip -y
RUN apt-get install postgresql -y
RUN apt-get install rabbitmq-server -y
RUN apt-get install libpq-dev python-dev -y
RUN apt-get install npm -y
RUN apt-get install mongodb -y
RUN pip install -r requirements.txt

问题答案:

问题是您将开发服务器暴露在127.0.0.1Docker容器内部,而不是主机OS上。如果您访问另一个控制台到您的容器并对其执行http请求,127.0.0.1:8000则该容器将起作用。

关键是确保Docker容器将开发服务器公开给所有IPv4地址,您可以使用0.0.0.0代替来实现127.0.0.1

尝试运行以下命令来启动Django开发服务器:

python manage.py runserver 0.0.0.0:8000

另外,为了获得更多启发,您可以查看此工作的Dockerfile,以使用内置开发服务器https://github.com/Niklas9/django-
unixdatetimefield/blob/master/Dockerfile
托管Django应用程序。



 类似资料:
  • 问题内容: 我正在尝试运行可访问主机上串行端口的Docker容器。 这是我所做的: 我用的是Mac 主机上已安装的驱动程序(http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41) 插入设备 然归来 -如此奏效 运行容器,然后在没有返回设备的容器内运行… 我用不同的参数变化玩了很多,但是还没有找到有效的参数:) 另外,该标志也

  • 连接到数据库 我在那里没有看到任何桌子,除了原木 我查看了日志,changelog已经在那里工作,并且已经创建了表。

  • 我该如何解决?谢谢伙计们

  • 我使用了dockerhub的Jenkins docker图像(https://github.com/jenkinsci/docker) docker build命令已成功执行,容器也已成功启动。 Docker build命令: Docker容器命令: 然后我通过docker run-it myjenkins bash登录到容器。我找不到像config这样的jenkins配置文件。xml,詹金斯。x

  • 在< code>win7 64bit中安装< code>docker toolbox 我的代码: 我在chrome浏览器中看不到任何结果。 重新安装 192.168.99.100:8000 显示: 运行: 显示: 运行: 显示: 更新 http://192.168.99.100:8000/ docker内部, > < li> 首先检查nginx是否正在运行。 查看哪个进程正在使用端口80

  • 我一直在尝试使用Docker-Compose将Django容器连接到Redis。经过几个小时的修改Docker和Django配置,并尝试了不同的运行方式,我终于发现Redis正在向主机广播。 null 最后我把Redis的Django IP配置改成了Docker主机IP,它工作得很好... 有没有人知道配置所有东西的方法,让Django在内部Docker网络上而不是在外部主机上查找Redis? 我