docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-Composeとは

Compose プロジェクトは、以前の fig プロジェクトから派生したものです。Python で記述されており、docker/swarm との高い互換性があります。 Compose は、Docker コンテナをオーケストレーションするためのツールです。マルチコンテナ アプリケーションを定義および実行します。1 つのコマンドで複数のコンテナを起動できます。Docker Compose を使用すると、コンテナを起動するためにシェル スクリプトを使用する必要がなくなります。 Compose は、構成ファイルを通じて複数の Docker コンテナを管理します。構成ファイルでは、すべてのコンテナがサービスを通じて定義され、その後、docker-compose スクリプトを使用して、アプリケーション、アプリケーション内のサービス、およびすべての依存サービスのコンテナを起動、停止、再起動します。これは、開発のために複数のコンテナを組み合わせるシナリオに非常に適しています。 docker-compose のデフォルトのテンプレート ファイルは docker-compose.yml です。このファイルでは、イメージ命令またはビルド命令 (Dockerfile が必要) を通じてイメージを指定して、定義されている各サービスを自動的にビルドする必要があります。

Compose を使用するには、基本的に次の 3 つの手順を実行します。

1. アプリケーション環境を Dockerfile で定義して、どこにでも複製できるようにします。
2. アプリケーションを構成するサービスを docker-compose.yml で定義し、分離された環境で一緒に実行できるようにします。
3. 最後に、docker-compose up を実行すると、Compose が起動し、アプリケーション全体が実行されます。

docker-compose でデプロイした際に mysql にアクセスできない問題を見てみましょう。

この問題は長い間私を悩ませてきました。docker docker-composeを使用して mysql をデプロイした後、コンテナが構築されると、 mysql -u root -pを使用してアクセスできますが、sql クライアントを使用して接続することはできません。そこで、Google で多くの情報を検索し、最終的にcommand: --default-authentication-plugin=mysql_native_passwordを追加するとこの問題を解決できることを発見しました。これは、パスワードの暗号化方法にまだ関連しています。

バージョン: "3.3"
サービス:
 レディス:
 画像: sameersbn/redis:latest
 ポート:
  - 「6379:6379」
 ボリューム:
  - redis_data:/var/lib/redis
 再起動: 常に
 マイスク:
  画像: mysql:最新
  再起動: 常に
  コマンド: --default-authentication-plugin=mysql_native_password #このコード行は、アクセスできないネットワークの問題を解決します。
   -開発
  ポート:
   - 「3306:3306」
  環境:
   MYSQL_ROOT_パスワード: abc123
   MYSQL_USER: 'テスト'
   MYSQL_PASS: 'テスト'
  ボリューム:
   -mysql_data:/var/lib/mysql
ネットワーク:
 開発者:
  ドライバー: ブリッジ
ボリューム:
 redis_データ:
 mysql_データ:

要約する

上記は、docker-compose を使用してアクセスできない mysql デプロイメントの問題を紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Clickhouse Docker クラスターの展開と構成を例を使って説明します
  • docker-compose デプロイメント PHP プロジェクト例の詳細な説明
  • Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順
  • Docker-compose を使用して GitLab をデプロイする方法
  • docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

<<:  vue-simple-uploader をベースに、ファイルセグメントアップロード、インスタントアップロード、ブレークポイント再開のグローバルアップロードプラグイン機能をカプセル化します。

>>:  MySQLデータベースを誤って削除した後にデータを回復するための手順

推薦する

CSS3 を使って本のページめくり効果を実現するサンプルコード

重要なポイント: 1. CSS3 3Dアニメーションをマスターする2. ページめくり後のページ内容の...

LinuxデバッガGDBの基本的な使い方の詳細な説明

目次1. 概要2. gdbデバッグ2.1. ブレークポイントを設定する2.1.1. ブレークポイント...

MySQL はどのようにしてデータベースの削除と暴走を効果的に防ぐことができますか?

目次セーフモード設定テスト1. where句なしで更新および削除する2. 非インデックスキーの削除3...

HTML で dl(dt,dd)、ul(li)、ol(li) を使用する方法

HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...

Linuxでのcrontabの使い方と注意点の詳しい説明

Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...

シンプルなドラッグ効果を実現するjs

この記事では、簡単なドラッグ効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

WeChatアプレットの下部にあるタブバーがコンテンツをブロックする問題に対処する簡単な方法

WeChatアプレットでタブバーを設定すると、重要なコンテンツがブロックされ、iPhoneXなどの異...

mysql binlog (バイナリログ) を表示する方法

たとえば、新しいテーブルを作成したり、既存のテーブルのデータを更新したりすると、これらのイベントは、...

ウェブ理論: 考えさせない読書ノート

第 1 章<br /> Web ページをユーザーにとって使いやすいものにするための最も重...

Linux自動ログイン例の説明

インターネット上には、expect を使用して自動ログインを実現するスクリプトが多数存在しますが、明...

画像ブラインド表示の効果を実現するための純粋な CSS の例

まず、完成した効果をお見せしましょう 主なアイデア: 実際、このブラインドは一種の手品を使用していま...

MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明

降順インデックスとは何ですか?インデックスについてはよくご存知かもしれませんが、降順インデックスにつ...

Vueは小さな天気予報アプリケーションを実装します

これは私が Vue フレームワークを独学していたときに真似したウェブサイトです。いくつかの都市の天気...

リモート Linux システムでポートが開いているかどうかを確認する 3 つの方法

これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...

CSS 背景と境界タグの例の詳細な説明

1. CSS背景タグ1.背景色を設定するbackground-ground-color プロパティは...