运行docker django容器时无法连接到服务器?
我已经浏览了这个网站上的问题,但是我一直无法解决这个问题。 我创build并运行了我的django应用程序的图像,但是当我尝试从浏览器查看应用程序时,页面无法加载(无法build立与服务器的连接)
我正在使用docker工具箱,我正在使用OS X El Capitan和Macbook是从2009年。
容器IP是:192.168.99.100
django项目根被称为“Web应用程序”,是包含manage.py的目录。 我的Dockerfile和我的requirements.txt文件在这个目录下。
我的dockerfile是:
从python:3.5
WORKDIR / usr / src / app
COPY requirements.txt ./
运行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映像。 在这两种情况下,我只看到“问题加载页面无法build立连接到服务器”
当我尝试将django容器链接到我使用的mysql容器时:
docker运行 – 链接mysqlapp:mysql -d应用程序
在哪里mysqlapp是我的mysql图像和“应用程序”是我的Django图像
在我的django settings.py中,允许的主机是:
ALLOWED_HOSTS:['localhost','127.0.0.1','0.0.0.0','192.168.99.100']
同样,当我使用docker build时,图像被成功创build,并且成功地作为容器运行。
为什么页面不能在浏览器中加载?
我build议使用yml文件和docker撰写。 下面是一个让你开始的模板:
[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中定义的工作目录path可能有问题。 希望以上帮助。
由salehinejad提供的解决scheme似乎是足够好的,虽然我没有亲自testing过,但如果你不想使用yml文件,想要走你的路,那么你应该通过添加端口
-p 0:8000
在你的运行命令
所以你应该看起来像这样:
docker run -p 0:8000 --link mysqlapp:mysql -d app
我怀疑你还没有告诉Docker与你的虚拟机交谈,并且你的容器正在主机上运行(如果你可以在本地主机上访问,这就是问题所在)。
请看这个职位的解决scheme:
使用IP连接到docker集装箱
- 如何在fig文件中提到多个django需求文件,用于跨dev,docker和prod服务器的docker部署?
- manage.py不会login到树莓派上的Docker的stdout / stderr
- 使用Django和Postgresql的多租户平台的解决scheme
- 在两个postgres数据库之间冲突,虽然有两个不同的docker – 为Django项目组成yaml文件
- 与jenkins和docker工人一起使用django-jenkins
- Docker Cloud自动testing找不到服务
- 使用pycharmdebugging器debugging在docker镜像中运行的django应用程序
- docker工具本地开发 – 我需要2个Docker文件吗?
- Django无法通过docker-compose连接到mysql