複数の Docker コンテナを操作する場合、コンテナの操作を調整し、準備が整っていることを確認することが重要になることがあります。 MySQL コンテナをデプロイし、データベースの準備ができたらスクリプトを実行する例を考えてみましょう。ただし、質問で述べたように、時期尚早な実行による問題が発生することは、MySQL の可用性を検出するための信頼できるメカニズムの必要性を浮き彫りにしています。
提供されている Bash スクリプトは、繰り返し試行するループに依存する実用的な解決策を提供します。接続が正常に確立されるまで MySQL に接続します。このアプローチは効果的ではありますが、すべてのシナリオに最適であるとは限りません。
代わりに、mysqladmin ユーティリティを利用することを検討してください。 mysqlクライアントパッケージ。 mysqladmin は、MySQL インスタンスを管理するためのコマンドライン インターフェイスを提供します。その便利な機能の 1 つは、ターゲット サーバーへの接続を試みる ping コマンドです。
mysqladmin を待機プロセスに統合するには、適切なホストおよび認証パラメーターを使用して mysqladmin ping を繰り返し実行するループを使用するだけです。コマンドが MySQL 接続の成功を示すエラーを返さなくなったら、次の操作に進みます。
while ! mysqladmin ping -h"$DB_HOST" --silent; do sleep 1 done
このアプローチは、MySQL の準備が整うまで待機する、より軽量で対象を絞った手段を提供し、リソースの消費を最小限に抑え、信頼性の高いコンテナーを確保します。コーディネート
以上がDocker コンテナで MySQL の準備が完了するまで待機する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。