[英]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.