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データベースを誤って削除した後にデータを回復するための手順

推薦する

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

Vue プロジェクトでよく使用されるツール機能の概要

目次序文1. カスタムフォーカスコマンド1. 方法1 2. 方法2 3. 方法3 2. 入力ボックス...

jsはシングルクリックでテーブルを変更することを実装します

Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...

vue プロジェクトのデプロイと Nginx でのプロキシ設定の問題の分析

1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...

JavaScript での実行コンテキストと実行スタックの例の説明

JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...

nginxのデフォルトポートを変更する方法の詳細な説明

まず設定ファイルがどこにあるか調べる nginx.confはどこにありますかこれらのディレクトリを調...

Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

Vue 仮想 Dom から実際の Dom への変換

別のツリー構造があるJavascriptオブジェクトでは、このツリーが本物であると伝えるだけでよいD...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

MySQLオンラインデッドロック分析練習

序文MySQL を学習する際に、MySQL のロック メカニズムについて簡単に理解したことがあると思...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...

Vueはログインタイプの切り替えを実装します

この記事では、ログインタイプの切り替えを実装するためのVueの具体的なコードを例として紹介します。具...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

タイムライン効果を実現するCSS3

最近、コンピューターの電源を入れたところ、Geek Academy が新規ユーザーに 1 か月の無料...