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

推薦する

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

echartsマップカルーセルハイライトを解決するための記事

目次序文やることリストやるだけ地図を準備するインスタンスをバックアップ用に保存するタイマーカルーセル...

Linux で Bash 環境変数を設定する方法

Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

MySQLインデックスに関する詳細を共有する

数日前、同僚からMySQLのインデックスについて質問を受けました。大体わかっているのですが、まだ練習...

CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法

1. インストールバージョンの詳細 サーバー: MariaDB サーバーバージョン: 5.5.60-...

MySQL 8.0 ディクショナリテーブル拡張の詳細な説明

MySQL のデータ ディクショナリは、データベースの重要なコンポーネントの 1 つです。INFOR...

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

複雑なウェブサイトのナビゲーションを簡素化

<br />ナビゲーション設計は構造設計における主要なタスクの 1 つです。ソフトウェア...

フロントエンドタスク構築のための強力なツールであるGulp.jsの使い方を詳しく説明します

目次概要Gulp.jsをインストールするGulp.jsを使用してプロジェクトを作成するgulpfil...

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

MYSQLパターンマッチングREGEXPの使用に関する一般的な話など

のようにLIKE ではデータ全体が一致する必要がありますが、REGEXP では部分的な一致のみが必要...

Element-uiはテーブル内のセルを直接クリックして編集します

目次成果を達成する実装コード最近、会社でelementUIを使い始めたため、開発の過程でテーブルのセ...