84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
如图
这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务
我宿主机的真实ip是10.0.0.2
但是我通过10.0.0.2:3366却连接不上,求大神指点一下
直接回答你的问题:之所以你必须通过192.168.99.100:3366来访问容器而不是宿主机的IP:10.0.0.2,就在于:你用了 Toolbox, 而 Toolbox 默认用到了 Virtualbox 虚拟机,于是多了一层。
192.168.99.100:3366
10.0.0.2
Toolbox
Virtualbox
画图说明之:
@有明 说的也是对的,建议你使用 Docker for Mac,Toolbox会被渐渐舍弃吧。
关掉防火墙试试吧
你试一下可否在容器里连到,mysql配置默认只能127.0.0.1的ip可以连接的。
提供一点思路:
首先通过3306端口来测试mysql service各个IP上的服务情况,如:
telnet 10.0.0.2 3306 telnet 192.168.99.100 3306
如果telnet发现端口是通畅的,然后再检查mysql的设置问题,即是否允许其他IP地址的mysql客户端访问
要在防火墙添加docker容器的网段 请允许访问host
iptables -F
为什么现在用Toolbox版的Docker,直接使用Docker for Mac最新版你的问题就不是问题了……
Docker其实是运行在Mac系统中的Linux虚拟机中的,Toolbox版的Docker使用的是VirtualBox作为虚拟机,因为属于第三方应用,且应用提供的接口也有限,所以虽然Docker能够映射端口到虚拟机上,但是不能把虚拟机的端口在映射到主机上。要实现这个映射,还需要手动去VirtualBox里做端口映射。
而新版的Docker for Mac使用的是xhyve作为虚拟机提供者,由于得到了Mac系统原生支持,它所提供的接口更丰富,Docker for Mac也能自动完成虚拟机到主机间的端口映射。所以在新版的Docker for Mac中,就无须再人工做虚拟机到主机端口映射的操作,可以直接使用本地127.0.0.1的端口访问到与之绑定的容器里。
直接回答你的问题:
之所以你必须通过
192.168.99.100:3366
来访问容器而不是宿主机的IP:10.0.0.2
,就在于:你用了Toolbox
, 而Toolbox
默认用到了Virtualbox
虚拟机,于是多了一层。画图说明之:
@有明 说的也是对的,建议你使用 Docker for Mac,
Toolbox
会被渐渐舍弃吧。关掉防火墙试试吧
你试一下可否在容器里连到,mysql配置默认只能127.0.0.1的ip可以连接的。
提供一点思路:
首先通过3306端口来测试mysql service各个IP上的服务情况,如:
如果telnet发现端口是通畅的,然后再检查mysql的设置问题,即是否允许其他IP地址的mysql客户端访问
要在防火墙添加docker容器的网段 请允许访问host
iptables -F
为什么现在用Toolbox版的Docker,直接使用Docker for Mac最新版你的问题就不是问题了……
Docker其实是运行在Mac系统中的Linux虚拟机中的,Toolbox版的Docker使用的是VirtualBox作为虚拟机,因为属于第三方应用,且应用提供的接口也有限,所以虽然Docker能够映射端口到虚拟机上,但是不能把虚拟机的端口在映射到主机上。要实现这个映射,还需要手动去VirtualBox里做端口映射。
而新版的Docker for Mac使用的是xhyve作为虚拟机提供者,由于得到了Mac系统原生支持,它所提供的接口更丰富,Docker for Mac也能自动完成虚拟机到主机间的端口映射。所以在新版的Docker for Mac中,就无须再人工做虚拟机到主机端口映射的操作,可以直接使用本地127.0.0.1的端口访问到与之绑定的容器里。