問題:
内で実行されている MySQL インスタンスへの接続の確立ホスト システムからの Docker コンテナが失敗したことが判明し、エラーが発生しました2002.
Dockerfile 詳細:
使用される Dockerfile には次の構成が含まれます:
FROM ubuntu:14.04.3 RUN apt-get update && apt-get install -y mysql-server RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf EXPOSE 3306 CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log
イメージは問題なく初期化されますが、接続を試行しますホストからコマンド mysql -P 12345 -uroot を使用すると、前述の結果が得られます。エラー。
解決策:
接続仕様:
Docker コンテナ内の MySQL インスタンスに接続するには、次のようにします。から mysql コマンドを呼び出すときに正しいパラメータを指定するために必要です。 host:
mysql -h localhost -P 3306 --protocol=tcp -u root
ここで、-h localhost はホストを指定し、-P 3306 はポート (この場合は 12345) を指定し、--protocol=tcp は TCP/ 経由で接続を確立する必要があることを示します。ソケット接続ではなく IP。
ソケット制限事項:
Docker コンテナ内では、MySQL は localhost を除くすべてのネットワーク インターフェイスにバインドします。ホスト システムはソケットにアクセスできないため、通信には TCP/IP を使用することが必須です。 mysql コマンドで --protocol=tcp を指定すると、ポート 3306 経由で接続が正常に確立されます。
以上がホスト マシンから Docker MySQL コンテナに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。