私信  •  关注

Ray D

Ray D 最近创建的主题
Ray D 最近回复了

Linux解决方案(内核=3.6)。

好的,你的本地主机服务器有默认的Docker接口 道克尔0 带IP地址 172.170.1 . 容器以默认网络设置启动 --net=“桥” .

  1. 为Docker0接口启用Route\u LocalNet:
    $ sysctl -w net.ipv4.conf.docker0.route_localnet=1
  2. 将此规则添加到iptables:
    $ iptables -t nat -I PREROUTING -i docker0 -d 172.17.0.1 -p tcp --dport 3306 -j DNAT --to 127.0.0.1:3306
    $ iptables -t filter -I INPUT -i docker0 -d 127.0.0.1 -p tcp --dport 3306 -j ACCEPT
  3. 从“%”创建具有访问权限的MySQL用户,这意味着-来自任何人,不包括本地主机:
    CREATE USER 'user'@'%' IDENTIFIED BY 'password';
  4. 将脚本中的mysql服务器地址更改为172.17.0.1


kernel documentation :

路由本地网 -布尔值:路由时不要将环回地址视为火星源或目标。这允许使用127/8进行本地路由( 默认为False )