我查看了本网站上的问题,但我无法解决这个问题。
我创建并运行了我的django应用程序的图像,但是当我尝试从浏览器查看应用程序时,页面无法加载(无法建立与服务器的连接)
我正在使用docker工具箱,我使用的是OS X El Capitan,Macbook是从2009年开始的。
容器IP为:192.168.99.100
django项目根被称为" Web应用程序"并且是包含manage.py的目录。我的Dockerfile和我的requirements.txt文件都在这个目录中。
我的dockerfile是:
FROM python:3.5
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
我的requirements.txt有django和mysqlclient
我的django应用程序使用Mysql,我试图在浏览器中查看dockerized django应用程序,无论是否将其链接到标准的mysql映像。在这两种情况下,我只看到以下错误:
问题加载页面无法建立与服务器的连接
当我尝试将django容器链接到我使用的mysql容器时:
docker run --link mysqlapp:mysql -d app
mysqlapp是我的mysql图片和' app'是我的django形象。
在我的django settings.py中,允许的主机是:
ALLOWED_HOSTS: ['localhost', '127.0.0.1', '0.0.0.0', '192.168.99.100']
同样,当我使用docker build时成功创建了图像,并且它成功地作为容器运行。为什么页面没有加载到浏览器中?
答案 0 :(得分:3)
我建议使用yml文件和docker compose。以下是一个可以帮助您入门的模板:
[Dockerfile]
FROM python:2.7
RUN pip install Django
RUN mkdir /code
WORKDIR /code
COPY code/ /code/
您的文件位于代码目录中。
[搬运工-compose.yml]
version: '2'
services:
db:
image: mysql
web0:
build: .
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
depends_on:
- db
Dockerfile中定义的工作目录路径可能存在问题。希望以上有所帮助。
答案 1 :(得分:2)
salehinejad提供的解决方案似乎已经足够好了,虽然我没有亲自测试过,但是如果你不想使用yml文件并希望按照自己的方式进行测试,那么你应该通过添加
-p 0:8000
在你的跑步命令
中所以你应该这样:
UserDefaults.standard.setValue(true, forKey:"_UIConstraintBasedLayoutLogUnsatisfiable")
答案 2 :(得分:0)
我怀疑您没有告诉Docker与您的VM通信,并且您的容器正在您的主机上运行(如果您可以在localhost访问,这就是问题)。
请参阅此帖子以获得解决方案: