我在AWS中有两个服务器,两个服务器都在一个安全组中,该组允许安全组成员之间所有端口上的所有流量.在一个服务器上,我有一个MySQL服务器(没有docker,我们将此服务器称为“ MysqL服务器”),在另一台服务器上,我有docker(我们将其称为“ Docker服务器”).我想从docker服务器上的容器中访问MysqL,而不必通过Internet路由流量(我想改用MysqL服务器的内部IP地址).
这可能吗?我有什么选择?
到目前为止我尝试过的
我已经将MysqL服务器配置为侦听所有接口,仅用于测试.这使我可以从Docker服务器成功连接到MysqL服务器(使用MysqL客户端连接到MysqL服务器的私有IP地址).但是,当我启动容器时,会创建一个新的网络名称空间,因此我无法再访问MysqL服务器的私有IP地址.
我已经尝试使用here所述的大使容器,但是遇到了同样的问题,大使容器内部没有MysqL服务器的专用IP地址.
例
这是一个示例来说明问题和我正在尝试做的事情.
从Docker服务器(尚未在任何容器中):
$ping -c 1 10.0.0.155
PING 10.0.0.155 (10.0.0.155) 56(84) bytes of data.
64 bytes from 10.0.0.155: icmp_seq=1 ttl=64 time=0.777 ms
--- 10.0.0.155 ping statistics ---
1 packets transmitted,1 received,0% packet loss,time 0ms
rtt min/avg/max/mdev = 0.777/0.777/0.777/0.000 ms
但是从容器中尝试:
$sudo docker run --rm -it apcera/nats-ping-client ping -c 1 10.0.0.115
PING 10.0.0.115 (10.0.0.115) 56(84) bytes of data.
From 10.0.0.200 icmp_seq=1 Destination Host Unreachable
--- 10.0.0.115 ping statistics ---
1 packets transmitted,0 received,+1 errors,100% packet loss,time 0ms
我之所以这样,是因为我知道Docker仅为容器创建了一个新的专用网络,但我所知还不足以解决我想做的事情.
如何连接东西以便能够从容器中访问MysqL服务器?