docker无法通过宿主ip访问容器中的mysql
过去多啦不再A梦
过去多啦不再A梦 2017-04-25 09:01:33
0
7
1631

如图

这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务

我宿主机的真实ip是10.0.0.2

但是我通过10.0.0.2:3366却连接不上,求大神指点一下

过去多啦不再A梦
过去多啦不再A梦

全員に返信(7)
習慣沉默

質問に直接答えるには:
ホストの 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

画像の説明: #🎜🎜##🎜🎜# #🎜🎜#@Youming は正しいです。Toolbox は徐々に廃止される予定です。 #🎜🎜#
いいねを押す +0
我想大声告诉你

ファイアウォールをオフにしてみてください

いいねを押す +0
曾经蜡笔没有小新

デフォルトでは、mysql 設定では 127.0.0.1 の IP のみが接続できるかどうかを確認してください。

いいねを押す +0
刘奇

いくつかのアイデアを提供してください:

  • まず、ポート 3306 経由で各 IP 上の mysql サービスのサービス ステータスをテストします。次のとおりです。

リーリー
  • Telnet でポートが開いていることが判明した場合は、mysql の設定の問題、つまり、他の IP アドレスを持つ mysql クライアントがアクセスを許可されているかどうかを確認してください

いいねを押す +0
PHPzhong

Dockerコンテナのネットワークセグメントをファイアウォールに追加するには、ホストへのアクセスを許可してください

いいねを押す +0
洪涛

iptables -F

いいねを押す +0
我想大声告诉你

なぜ今、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 を使用して、それにバインドされているコンテナにアクセスできます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート