2016-11-01 3 views
1

まず内部のMySQLサーバに接続できません:は、私はmysqlのイメージを実行ドッカー

docker run -e MYSQL_ROOT_PASSWORD=password -d -p 127.0.0.1:3308:3306 mysql 

は、それから私は、コンテナbashの使用(big_golickがあるランダムなドッキングウィンドウ自体がコンテナに割り当てられた名前の):

docker exec -it big_golick bash 

Bashでは、コマンドを使用してMySQLサーバに正常に接続できます:

mysql -uroot -ppassword 

しかし、私はWindowsのcmdをからMySQLのコンテナにONNECT:

mysql -uroot -ppassword -h127.0.0.1 -P3308 

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (10061) 

私が代わりに(このIPはdocker-machine ipによって返される)192.168.99.100に接続する場合、結果は同じです。

問題は:Docker内のMySQLポートを外部のWindowsに正しく公開するにはどうすればよいですか?

+0

を使用してMySQLに接続することができます: 'mysqlの-uroot -Ppassword -h192.168.99.100 -P3308'。 192.168.99.100は、通常、Docker Machine VMのIPです。 – nwinkler

+0

実際にnwinkler、192.168.99.100がドッカーマシンのipコマンドを購入返されます。しかし、ipを置き換えても助けにならない – Yurii

+0

'docker ps -a'を実行して、ポートマッピングが正しい方法で設定されていることを確認できますか? – nwinkler

答えて

1

エラーがあなただけのポートではなく、IPアドレスを提供する必要があり、オリジナルのdocker runコマンドであなたのポートマッピングである:

docker run -e MYSQL_ROOT_PASSWORD=password -d -p 3308:3306 mysql 

あなたは、走行時のポートマッピングをチェックするdocker ps -aを実行することができますコンテナ。

あなたは今、あなたはドッカーマシンを使用している場合は、代わりに127.0.0.1のドッカーマシンVMのIPアドレスを使用する必要が

mysql -uroot -ppassword -h192.168.99.100 -P3308 
0

最初に、netstat -anにチェックを入れて、Windowsでポートが開いていることを確認します。そうである場合は、Windowsファイアウォールもチェックして、ポートへの接続をブロックしていないことを確認します。

私のDockerエクスペリエンスのほとんどはCoreOSに搭載されているため、Windowsがどのようにコンテナにトラフィックをルーティングするかを正確には分かりません。 CoreOSでは、proxyを使用します。 Windowsにプロキシがある場合は、何もそれを妨害していないことを確認してください。

+0

それは開いていない、それはnetstatにも言及されていない - 出力 – Yurii

関連する問題