Docker MySQL соединение отказано на другой порт - PullRequest
0 голосов
/ 05 марта 2019

Итак, я запускаю несколько Docker-контейнеров на хосте, на котором уже работает MySQL.Я хотел бы также запустить MySQL в контейнере Docker на той же машине.Вместо этого я настроил свой составной файл Docker на использование 3307, но когда мое приложение пытается установить соединение с БД, я вижу:

web_1     | Could not connect ... 2003: Can't connect to MySQL server on 'db:3307' (111 Connection refused)
web_1     | 10.0.2.2 - - [04/Mar/2019 21:06:31] "GET / HTTP/1.1" 500 -

Я перепробовал все виды различных сетевых конфигураций, но каждая из них создает новую проблему.Вот файл compose, который я использую для файла docker-compose.yml и вывод 'docker container ps'

[jim@localhost ~]$ docker container ps
CONTAINER ID        IMAGE               COMMAND                  CREATED            STATUS              PORTS                               NAMES
a0f12368ee8d        jimpython_web       "python ./app.py"        4 minutes ago       Up 4 minutes        0.0.0.0:5000->5000/tcp              jimpython_web_1
9b0efbf08069        jimpython_celery    "celery worker -A ..."   4 minutes ago       Up 4 minutes                                            jimpython_celery_1
fcc72e5a9fdd        mysql:5.7           "docker-entrypoint..."   15 minutes ago      Up 4 minutes        33060/tcp, 0.0.0.0:3307->3306/tcp   jimpython_db_1
0b65a78a56f2        redis:alpine        "docker-entrypoint..."   15 minutes ago      Up 4 minutes        0.0.0.0:6379->6379/tcp              jimpython_redis_1
3c2d1551c165        mongo               "docker-entrypoint..."   15 minutes ago      Up 4 minutes        0.0.0.0:27017->27017/tcp            jimpython_mongo_1

Я надеялся не изменять порт, который MySQL в Dockerработает, если возможно.Любой вклад приветствуется.

1 Ответ

0 голосов
/ 05 марта 2019

Похоже, вы подключаетесь к базе данных из другого контейнера Docker.Когда вы делаете это, открытый / переадресованный порт не используется, поэтому вы все равно должны использовать 3306 оттуда.Вы будете использовать 3307 только при подключении к нему снаружи Docker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...