Я пытаюсь настроить среду разработки Django с помощью docker. Хотя я могу подключиться к mysql на главной машине. Но веб-контейнер не удалось подключиться к тузд контейнер с следующей ошибкой:Контейнер docker Django не смог подключиться к контейнеру mysql с ошибкой «Не удается подключиться к серверу MySQL на« db »(111)»)
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'db' (111)")
Ниже приведены Докер конфигурации и Джанго конфигурации:
--------- докер-compose.yml-- -------
version: '2'
services:
web:
build: .
volumes:
- ".:/code/current"
ports:
- "8000:8000"
depends_on:
- db
- redis
links:
- db
- redis
command: ./manage.py runserver 0.0.0.0:8000
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=goat_db
restart: always
ports:
- "3306:3306"
Redis: рестарт: всегда изображения: Redis: последние порты: - "6379: 6379"
-------------- Dockerfile для веб-изображения ----------------------
FROM ubuntu:14.04
MAINTAINER Alice
RUN apt-get update
RUN apt-get install -y tar git curl wget emacs build-essential python python-dev python-distribute python-pip libpcre3 libpcre3-dev libmysqlclient-dev python-m2crypto openssl libssl-dev swig freetds-dev python-pymssql nginx subversion
RUN mkdir -p var/www/goat.garenanow.com/current/log
WORKDIR /var/www/goat.garenanow.com/current
ADD requirements.txt /var/www/goat.garenanow.com/current
RUN pip install -r requirements.txt
ADD . /var/www/goat.garenanow.com/current
EXPOSE 8000
- ----- Конфигурация базы данных django ---
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'goat_db',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'db',
'PORT': '3306',
},
После выхода из контейнера до запуска для одного всю ночь. Это просто работает. (Что случилось, хотя ????) – sinsin
Dunno - в любом случае был конфликт портов, а некоторые другие службы остановились? Или машина перезапустилась? – ldg
Да, получилось, что докер-составление перезапуска решает проблему ... – sinsin