2017-01-18 7 views
1

Я просмотрел вопросы на этом сайте, но я не смог решить эту проблему. Я создал и запустил образ моего приложения django, но когда я пытаюсь просмотреть приложение из браузера, страница не загружается (не удается установить соединение с сервером)Не удается подключиться к серверу при запуске docker django container?

Я использую панель инструментов докеров, Я использую OS X El Capitan и Macbook от 2009

IP-контейнер: 192.168.99.100

Джанго корень проект называется «веб-приложение» и каталог, содержащий manage.py. Мой файл Dockerfile и мои файлы требований.txt находятся в этом каталоге.

Мой dockerfile является:

из питона: 3,5

Workdir/USR/SRC/приложение

COPY requirements.txt ./

RUN пункт установить -r требования. txt

COPY. ,

ПОДВЕРГАТЬ 8000

CMD [ "питон", "manage.py", "runserver", "0.0.0.0:8000"]

Мой requirements.txt имеет Джанго и mysqlclient

В моем приложении django используется Mysql, и я попытался просмотреть прикрепленное приложение django в браузере и связать его со стандартным образчиком mysql и без него. В обеих случаях, я вижу только «проблема загрузки страница не удается установить соединение с сервером»

Когда я действительно пытался связывающей контейнер Джанго в тузде контейнер я использовал:

докера запустить --link mysqlapp : MySQL -d приложение

Где mysqlapp мой MySQL образ и 'приложение' мой Джанго изображение

В моей Джанго settings.py, разрешенные хосты:

allowed_hosts: [ 'локальный', '127.0.0.1', '0.0.0.0', '192.168.99.100']

Опять же, образ успешно создан, когда я использовал Docker сборки, и успешно запускается как контейнер.

Почему загрузка страницы не работает в браузере?

ответ

2

Я предлагаю использовать файл 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. Надежда выше помогает.

2

Решение обеспечивается salehinejad, кажется, достаточно хорошо, хотя я не проверял лично, но если вы не хотите использовать файл YML и хотите идти своим путем, то вы должны выставить порт, добавив

-p 0: 8000

в вашей команде запуска

Так ваш должен выглядеть следующим образом:

docker run -p 0:8000 --link mysqlapp:mysql -d app 
0

Я подозреваю, что вы не сказали Docker поговорить с вашей виртуальной машиной и что ваши контейнеры работают на вашем хост-компьютере (если вы можете получить доступ на localhost, это проблема).

Пожалуйста, смотрите этот пост для разрешения:

Connect to docker container using IP