如图
这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务
我宿主机的真实ip是10.0.0.2
但是我通过10.0.0.2:3366却连接不上,求大神指点一下
習慣沉默2017-04-25 09:03:33
質問に直接答えるには:
ホストの IP: 10.0.0.2
192.168.99.100:3366 を介してコンテナにアクセスする必要がある理由> その理由は、Toolbox
を使用しており、Toolbox
はデフォルトで Virtualbox
仮想マシンを使用するため、追加のレイヤーが存在するためです。 192.168.99.100:3366
来访问容器而不是宿主机的IP:10.0.0.2
,就在于:你用了 Toolbox
, 而 Toolbox
默认用到了 Virtualbox
虚拟机,于是多了一层。
画图说明之:
@有明 说的也是对的,建议你使用 Docker for Mac,Toolbox
Toolbox
は徐々に廃止される予定です。 #🎜🎜#怪我咯2017-04-25 09:03:33
いくつかのアイデアを提供してください:
まず、ポート 3306 経由で各 IP 上の mysql サービスのサービス ステータスをテストします。次のとおりです。
Telnet でポートが開いていることが判明した場合は、mysql の設定の問題、つまり、他の IP アドレスを持つ mysql クライアントがアクセスを許可されているかどうかを確認してください
我想大声告诉你2017-04-25 09:03:33
なぜ今、Toolbox バージョンの Docker を使用するのでしょうか? 最新バージョンの Docker for Mac を直接使用すれば、問題は発生しません...
Docker は実際には Mac システムの Linux 仮想マシンで実行されます。Docker の Toolbox バージョンは、サードパーティ アプリケーションであり、アプリケーションによって提供されるインターフェイスが制限されているため、仮想マシンとして使用されます。ポートを仮想マシンにマッピングできますが、仮想マシンのポートをホストにマッピングすることはできません。このマッピングを実現するには、VirtualBox でポート マッピングを手動で行う必要があります。
Docker for Mac の新しいバージョンは、仮想マシン プロバイダーとして xhyve を使用します。Mac システムのネイティブ サポートにより、Docker for Mac は仮想マシンとホスト間のポートを自動的に完了することもできます。 。 マッピング。したがって、新しいバージョンの Docker for Mac では、仮想マシンをホスト ポートに手動でマッピングする必要はなく、ローカル ポート 127.0.0.1 を使用して、それにバインドされているコンテナにアクセスできます。