ホームページ  >  に質問  >  本文

docker无法通过宿主ip访问容器中的mysql

如图

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

我宿主机的真实ip是10.0.0.2

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

过去多啦不再A梦过去多啦不再A梦2706日前1584

全員に返信(7)返信します

  • 習慣沉默

    習慣沉默2017-04-25 09:03:33

    質問に直接答えるには:
    ホストの IP: 10.0.0.2192.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
  • 我想大声告诉你

    我想大声告诉你2017-04-25 09:03:33

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

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-25 09:03:33

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-25 09:03:33

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

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

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

    返事
    0
  • PHPz

    PHPz2017-04-25 09:03:33

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-25 09:03:33

    iptables -F

    返事
    0
  • 我想大声告诉你

    我想大声告诉你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 を使用して、それにバインドされているコンテナにアクセスできます。

    返事
    0
  • キャンセル返事