Conecte-se ao banco de dados MySQL remoto a partir do container docker
Estou trabalhando para contêiner um aplicativo Django 1.5.x que se conecta a um banco de dados MySQL em um servidor separado via ODBC:
[mysql_default]
database = DB_NAME
driver = /usr/lib64/libmyodbc5.so
server = REMOTE_DB_SERVER
user = DB_USER
password = DB_USER_PWD
port = 3306
Sou capaz de executar o aplicativo Django na minha máquina local (janela de encaixe externa) com uma conexão com o banco de dados remoto via encaminhamento de porta e SSH:
ssh -L 3307:127.0.0.1:3306 MYID@REMOTE_DB_SERVER
Configurei um contêiner do Docker para o aplicativo usando o Centos 6.x, mas não consigo fazer a conexão do MySQL funcionar. O contêiner possui o MySQL instalado e o mysqld em execução.
Meu arquivo docker-compose.yml aparece assim:
version: "2"
services:
web:
build: .
image: MY_IMAGE
container_name: MY_CONTAINER
network_mode: "host"
ports:
- "3307:3306"
command: /bin/bash
Com o contêiner em execução, posso executar o seguinte comando (fora do contêiner) para mostrar bancos de dados no banco de dados remoto:
docker exec MY_CONTAINER echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3307
Mas de dentro do contêiner o mesmo comando falha:
echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3306
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)