Когда я пытаюсь соединиться с Docker контейнера работает мое приложение Django в контейнер работает MySQL, я получаю следующее сообщение об ошибке:Не удается подключиться к MySQL Docker контейнера из контейнера с Django приложение
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '172.17.0.2' (111)")
Вот как я м работает контейнер MySQL:
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=testdb -e MYSQL_ROOT_HOST=172.17.0.2 -d mysql/mysql-server:5.7
Если я не указываю MYSQL_ROOT_HOST
, я получаю эту ошибку, когда я пытаюсь подключиться из контейнера с приложением Django:
django.db.utils.OperationalError: (1130, "Host '172.17.0.3' is not allowed to connect to this MySQL server")
Вот мои настройки Django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdb',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '172.17.0.2',
'PORT': '',
}
}
Я проверял контейнер MySQL использует IP 172.17.0.2:
$ docker inspect mysql |grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
Является ли название базы данных docker container mysql? – denvaar
Да, это имя mysql. – user2233706
Обычно для запуска MySql требуется несколько секунд, вы пытаетесь подключиться к нему сразу или после немного? Кроме того, fwiw, похоже, что вам не нужно указывать 'MYSQL_ROOT_HOST' при запуске контейнера. – R0MANARMY