なぜ今、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 を使用して、それにバインドされているコンテナにアクセスできます。
質問に直接答えるには:
ホストの 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,
画像の説明: #🎜🎜##🎜🎜# #🎜🎜#@Youming は正しいです。Toolbox
Toolbox
は徐々に廃止される予定です。 #🎜🎜#ファイアウォールをオフにしてみてください
デフォルトでは、mysql 設定では 127.0.0.1 の IP のみが接続できるかどうかを確認してください。
いくつかのアイデアを提供してください:
リーリーまず、ポート 3306 経由で各 IP 上の mysql サービスのサービス ステータスをテストします。次のとおりです。
Telnet でポートが開いていることが判明した場合は、mysql の設定の問題、つまり、他の IP アドレスを持つ mysql クライアントがアクセスを許可されているかどうかを確認してください
Dockerコンテナのネットワークセグメントをファイアウォールに追加するには、ホストへのアクセスを許可してください
iptables -F
なぜ今、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 を使用して、それにバインドされているコンテナにアクセスできます。