我努力containerize是通过ODBC连接到MySQL数据库的独立服务器上的Django的1.5.x版本的应用程序:连接到从搬运工容器远程MySQL数据库
我能运行我的本地机器(外泊坞窗)上转发&通过SSH端口到远程数据库的连接Django应用程序:
ssh -L 3307:127.0.0.1:3306 [email protected]_DB_SERVER
我已经设置了使用的Centos 6.x的应用码头工人,容器,但可以”让MySQL连接正常工作。该容器安装了MySQL并且正在运行mysqld。
我的搬运工,compose.yml文件看起来像这样:
version: "2"
services:
web:
build: .
image: MY_IMAGE
container_name: MY_CONTAINER
network_mode: "host"
ports:
- "3307:3306"
command: /bin/bash
与容器运行,我可以执行以下命令(在容器外),以显示在远程DB数据库:
docker exec MY_CONTAINER echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3307
但是从容器内的同一命令失败:
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)
你或许可以使SSH隧道来听的docker0接口(172.17.0.1)或所有接口上(0.0.0.0,注意风险)通过'ssh -L 172.17.0.1:3307:127.0.0.1:3306 ...'(未测试)。另一种可能是从容器内建立SSH隧道。 –