加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

允许通过docker-machine运行的容器与父OSX系统上的Mysql或XDEBUG

发布时间:2020-12-16 03:36:20 所属栏目:安全 来源:网络整理
导读:我有以下设置: 运行MySQL的OSX侦听端口3306上的所有网络适配器 XDEBUG启用IDE侦听基本OSX系统上的端口9000. 使用主机IP 192.168.99.100在OSX系统上运行的docker-machine主机 一个基于debian的docker容器,在docker主机上运行mysql客户端,运行xdebug的HHVM希

我有以下设置:

>运行MySQL的OSX侦听端口3306上的所有网络适配器
> XDEBUG启用IDE侦听基本OSX系统上的端口9000.
>使用主机IP 192.168.99.100在OSX系统上运行的docker-machine主机
>一个基于debian的docker容器,在docker主机上运行mysql客户端,运行xdebug的HHVM希望连接到端口9000上的一些幸运远程主机.

由于通过DHCP分配,ip地址在OSX系统上频繁更改,因此我希望docker容器能够以某种方式能够访问mysql服务器,无论本机OSX网络适配器分配了什么IP(无需手动更新) ).此外,我需要一个稳定的IP我可以为我的HHVM server.ini文件提供Xdebug的远程主机.

通过运行linux的基本系统,这不是问题,因为docker主机和运行docker的实际本地机器是同一个.此外,有几种方法可以让容器了解主机的ip,因此问题不会触及docker主机.

但是,在运行docker-machine的OSX中,主机不是本机OSX系统,而是在虚拟机框中运行的VM(假设您使用的是vb驱动程序,以及sam hill烧的是谁?).

我唯一能想到的是将3306上的请求移植到docker-machine主机(192.168.99.100,它永远不会改变)到OSX的端口3306.然后让容器命中docker-machine主机以获取Mysql请求.如果这个工作,我可以冲洗并重复我需要链接的端口,如xdebug端口9000上的端口.

有谁知道如何完成这个或有另一个建议?

最佳答案
想出一条出路,无需进行任何改变,提供一致的IP连接到基础OSX系统. Docker机器以这样的方式设置,使这成为可能.

> Docker机器创建一个带有2个网络适配器的虚拟机VM,一个设置为仅主机,另一个设置为NAT.不知道为什么会创造2,但是
>仅主机适配器为OSX提供192.168.99.1的IP,并且使用它的各种VM获取从192.168.99.100开始的地址.但是,在VM网络内部,您不能使用地址192.168.99.1来命中父OSX系统上的端口(不确定原因,但猜测主机只打算只在VM之间进行通信).
>设置NAT网络适配器,以便OSX得到ip 10.0.2.2,VM得到10.0.2.15.使用NAT,您可以从Docker主机VM和主机上运行的容器路由到10.0.2.2的OSX系统.

由于这个OSX机器的10.0.2.2地址没有改变(除非你搞砸了虚拟盒网络设置)bingo,得到了我需要的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读