![](/img/trans.png)
[英]SQL Server running as docker container on Macbook. I am unable to connect with python
[英]Unable to connect to server when running docker django container
我已经浏览了本网站上的问题,但无法解决此问题。
我创建并运行了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映像,也没有将其链接到标准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时,成功创建了映像,并且该映像已成功作为容器运行。 为什么页面无法加载到浏览器中?
我建议使用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中定义的工作目录路径可能存在问题。 希望以上有帮助。
由salehinejad提供的解决方案似乎已经足够好了,尽管我还没有亲自对其进行过测试,但是如果您不想使用yml文件并且希望按照自己的方式去做,那么您应该通过添加来公开端口
-p 0:8000
在您的运行命令中
所以你应该看起来像这样:
docker run -p 0:8000 --link mysqlapp:mysql -d app
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.