MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装

MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装

1. まず、次のパスに従って対応するフォルダを作成します。

ローカルのdockerでmysqlを実行

2. 次に、このディレクトリにdocker-compose.ymlファイルを作成し、ファイルに次の設定を追加します。

バージョン: '3.1'
サービス:
 デシベル:
  画像: mysql
  再起動: 常に
  環境:
   MYSQL_ルート_パスワード: 123456
  指示:
   --default-authentication-plugin=mysql_native_password
   --character-set-server=utf8mb4
   --collat​​ion-server=utf8mb4_general_ci
   --explicit_defaults_for_timestamp=true
   --小文字テーブル名=1
   --max_allowed_pa​​cket=128M;
  ポート:
   -3306:3306
  ボリューム:
   - ./data:/var/lib/mysql

 管理者:
  画像: 管理者
  再起動: 常に
  ポート:
   - 8080:8080

3. 次のパスに従って対応するフォルダを作成します。

ローカルの docker ディレクトリ

4. フォルダのディレクトリに docker-compose.yml ファイルを作成し、関連する構成情報を入力します (上記のホスト マシンの 8080 ポートは使用されているため、ここで別のポートに変更することしかできません)

バージョン: '3.1'
サービス:
 トムキャット:
  再起動: 常に
  画像: トムキャット
  コンテナ名: tomcat
  ポート:
   -8082:8080
  ボリューム:
   - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  環境:
   TZ: アジア/上海

注意: 作成されたディレクトリが異なる場合、上記の対応する/usr/local/docker/tomcatディレクトリは同じにすることはできません。

5. 起動に失敗した場合は、起動コマンドで直接試すことができます。

docker run -p 8082:8080 イメージIDまたはイメージ名

6. プロジェクトをTomcatと同じディレクトリにアップロードし、解凍して実行してデプロイメントを実現します。

例:

1 つのコンテナで 1 つのプロジェクトをデプロイできるというのはおかしくありませんか? フロントエンド UI、バックエンド Admin、データベース MySQL の 3 つのアプリケーションを同じサーバーにデプロイする場合、バックエンドはフロントエンドのデータを管理する必要があり、その構成ファイル docker-compose は次のようになります。

管理者パス: /usr/local/docker/tomcat

バージョン: '3.1'
サービス:
 トムキャット:
  再起動: 常に
  画像: トムキャット
  コンテナ名: tomcat
  ポート:
   -8082:8080
  ボリューム:
   - /usr/local/docker/tomcat:/usr/local/tomcat/webapps/ROOT
  環境:
   TZ: アジア/上海

UI: /usr/local/docker/tomcat_ui

バージョン: '3.1'
サービス:
 トムキャット:
  再起動: 常に
  画像: トムキャット
  コンテナ名: tomcatui
  ポート:
   -8083:8080
  ボリューム:
   - /usr/local/docker/tomcat_ui:/usr/local/tomcat/webapps/ROOT
  環境:
   TZ: アジア/上海~

mysql パス: /usr/local/docker/mysql

dokekr-composeの設定

バージョン: '3.1'
サービス:
 デシベル:
  画像: mysql
  再起動: 常に
  環境:
   MYSQL_ルート_パスワード: 123456
  指示:
   --default-authentication-plugin=mysql_native_password
   --character-set-server=utf8mb4
   --collat​​ion-server=utf8mb4_general_ci
   --explicit_defaults_for_timestamp=true
   --小文字テーブル名=1
  ポート:
   -3306:3306
  ボリューム:
   - ./data:/var/lib/mysql

 管理者:
  画像: 管理者
  再起動: 常に
  ポート:
   - 8080:8080

バックエンドはフロントエンドデータをどのように管理するのでしょうか?実際には、デプロイしたプロジェクトによって異なります。プロジェクトには次のようなデータ接続構成があります。

ODBC ドライバ
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.ユーザー名=root
jdbc.パスワード=123456
# JDBC プール
プール初期化=1
jdbc.pool.minIdle=3
jdbc.pool.maxActive=20
JDBC テスト
jdbc.testSql=デュアルから 'x' を選択

ここで設定されている jdbc.connectionURL=jdbc:mysql://192.168.206.128:3306/twg?useUnicode=true&characterEncoding=utf-8&useSSL=false が鍵となります。実際、データ管理はこの IP を通じて行われます。この IP は MySQL によってデプロイされたサーバー IP であるため、デプロイされたプロジェクトの接続構成はこの IP を指し、バックグラウンドはこのデータベースのデータを取得し、フロントエンドデータを直接管理できるようになります。さらに、Navicat や SQLyog などのデータベース可視化インターフェースでは、上記 IP など、データベースによって展開された IP を使用して、サーバー データベース内のデータを簡単に管理できます。

サービスを停止する必要がある場合は、サービスに対応するフォルダーと docker-compose と同じレベルのディレクトリで docker-compose down を使用して、サービスを直接停止できます。

これで、MySQL8 デプロイメント プロジェクトに基づく docker-compose の実装に関するこの記事は終了です。MySQL8 の docker-compose デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker Compose は MySQL に接続するために SpringBoot プロジェクトをデプロイしますが、そこで遭遇する落とし穴があります。
  • docker-compose を使用して MySQL を実行する方法
  • dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする
  • docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析
  • docker compose を使用して elk システムを構築する方法
  • docker-compose を使用して mongodb と mysql を構築する詳細なプロセス

<<:  IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

>>:  React onClickにパラメータを渡す問題について話しましょう

推薦する

Win10にCentOS7仮想マシンをインストールする

1. VMware Workstation 64バージョンをダウンロードするhttps://www....

Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

nginx、mysql、tomcat などのサービスをインストールするときに、使用する必要があるポー...

純粋な CSS3 でモバイルの拡大と縮小の効果を実装するためのサンプル コード

この記事では、純粋な CSS3 を使用してモバイル端末での展開と折りたたみの効果を実装するサンプルコ...

MySQLの遅いクエリ問題の詳細な分析データ送信

例を通して、MySQL のデータ テーブル送信のクエリが遅い問題の解決策を共有しました。最近、コード...

MySQLのUPDATE文の落とし穴を記録する

背景最近、オンライン操作中に DML ステートメントを実行しました。これは絶対確実だと思っていました...

CSS フレックスベースのテキストオーバーフロー問題の解決方法

重要でないflex-basisテキストオーバーフローに省略記号を追加するという小さな機能に多くの問題...

Nginx インストールの詳細なチュートリアル

1. Nginxの簡単な紹介Nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリ...

MySQL msiバージョンのダウンロードとインストールの初心者向けの詳細なグラフィックチュートリアル

目次1. MySQL msiバージョンをダウンロードする2. インストール3. 環境変数を設定する1...

njs モジュールを使用して nginx 構成に js スクリプトを導入する

目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...

Vueのミックスインと継承について詳しく説明します

目次序文ミキシンMixin ノート (重複名)ローカルミックスイングローバル ミックスイン継承するミ...

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

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

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

MySQL count(1)、count(*)、count(field)の違い

目次1. COUNTの初見2. COUNT(フィールド)、COUNT(定数)、COUNT(*)の違い...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...