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にパラメータを渡す問題について話しましょう

推薦する

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...

WeChatミニプログラムで検索キーワードを強調表示するサンプルコード

1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け...

Vueは、センシティブな単語フィルタリングコンポーネントを検出するためのさまざまなアイデアを実装しています。

目次前面に書かれた要件分析 v1アイデア1: インターセプションメソッドを使用して入力ボックスの入力...

MySQLカーソルの詳細な紹介

目次1. カーソルとは何ですか? 2. カーソルの使い方1. カーソルを宣言する2.カーソルを開く3...

Word のコンテンツを Web サイトのエディターに直接コピーすることはお勧めしません。

<br />質問: Word のコンテンツを Web サイトのエディターに直接コピーする...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...

mysql の find_in_set 関数の基本的な使い方

序文これは私が最近見つけた新しい機能です。プロジェクトでの私の使用シナリオは次のとおりです。アプリケ...

Vue での weixin-js-sdk の一般的な使用方法の詳細な説明

リンク: https://qydev.weixin.qq.com/wiki/index.php?ti...

VMware Workstation Pro が Windows で実行されない場合の解決策

国慶節の休暇後、Windows アップデート後に VMware 仮想マシンが開けなくなり、「VMwa...

MySQL 8.0 の非表示インデックスの詳細な説明

言葉MySQL 8.0 は最初のバージョンから 4 年を経てリリースされました。バージョン 8.0 ...

CSSは下部のタップバー機能を実装します

現在多くの携帯電話には、下部のタブバーを切り替える機能があります。私も最近、同様の機能を見つけました...