Dockerでspringcloudプロジェクトをデプロイする方法

Dockerでspringcloudプロジェクトをデプロイする方法

Dockerイメージのダウンロード

1. nacosをダウンロードする

docker pull nacos:[バージョン番号]

2. MySQLをダウンロードする

docker pull mysql:[バージョン番号]

3. docker-composeをインストールする

Linux では、次のコマンドを使用してダウンロードする必要があります。

# インストール curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

ダウンロード速度が遅い場合、またはダウンロードに失敗した場合は、提供されている docker-compose ファイルを使用できます: docker-compose-Linux_jb51.rar

/usr/local/bin/ディレクトリにアップロードし、ファイルの権限を変更します。

# 権限を変更する chmod +x /usr/local/bin/docker-compose

基本自動補完コマンド:

# 完全なコマンド curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

ここでエラーが発生した場合は、hosts ファイルを変更する必要があります。

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

許可が拒否されました

永久に閉店:

vim /etc/sysconfig/selinux
SELINUX=enforcing を SELINUX=disabled に変更しました

VMを再起動します

mysqlとnacosを起動する

1. mysqlを起動します。

MySQL固有の設定

2. nacosを起動します。

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1

3. nacosとファイアウォールを再起動します。

docker restart nacos //nacosを再起動する
systemctl restart firewalld.service //ファイアウォールを再起動します

4. 設定を変更する

デフォルトでは、Linux は docker-compose によってマウントされたデータ ボリュームに読み取りおよび書き込み権限を与えません。mysql データ ボリュームを正常にマウントするには、selinux を無効にする必要があります。

vim /etc/sysconfig/selinux
SELINUX=enforcing を SELINUX=disabled に変更しました
VMを再起動します

独自のJavaプロジェクトを変更する

1. nacos アドレスを表示します。

docker inspectでコンテナの IP アドレスを表示し、独自の SpringCloud プロジェクトを変更して、サブプロジェクトの nacos アドレスをコンテナの IP アドレスに変更します。

mysqlの接続アドレスを変更する nacosとmysqlアドレスサブモジュールを使用して構成ファイルを変更します: bootstrap.yml

ここに画像の説明を挿入

MySQL 8.8.15を使用する場合、多くの変更があります。

データソース:
 URL: jdbc:mysql://192.168.88.130:3306/tb_user?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
 ユーザー名: root
 パスワード: 123456
 driver-class-name: com.mysql.cj.jdbc.Driver //mysql 5.x を使用する場合は、cj を追加しないでください。

パック

Maven パッケージング ツールを使用して、プロジェクト内の各マイクロサービスをapp.jarにパッケージ化します。

ここに画像の説明を挿入

ここに画像の説明を挿入

Linuxシステムをアップロード

パッケージ化されたapp.jarをcloud-demo1内の対応するサブディレクトリにコピーします。
cloud-demo1のディレクトリ構造: モジュールごとに個別のフォルダを作成します

ここに画像の説明を挿入

docker-compose.ymlファイルの内容: 必要に応じて設定します

ここに画像の説明を挿入

その他のモジュール:

ここに画像の説明を挿入

Linuxをアップロード

ここに画像の説明を挿入

起動する

cloud-demo1ディレクトリに入る: 開始

docker-compose up -d //dockerを起動する logs -f xxx //ロ​​グを表示する

発生した問題:

パッケージ化に失敗しました:

親プロジェクトのビルドを削除します。

    <!--<ビルド>
        <プラグイン>
            <プラグイン>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </プラグイン>
        </プラグイン>
    </ビルド>
-->

バージョンが高すぎます

[root@localhost cloud-demo1]# docker-compose up -d
建物タイプサービス
不明なフラグ: --iidfile
「docker build --help」を参照してください。
エラー: サービス 'typeservice' のビルドに失敗しました: ビルドに失敗しました

ここに画像の説明を挿入

その他のエラー

failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried:

解決策: まずnacosを再起動し、次にファイアウォールを再起動しますsystemctl restart firewalld.service

MySQL ログの表示permission denied

原因分析: Linux はデフォルトで docker-compose によるデータボリュームのマウントを禁止しているため、権限を付与する必要があります。

解決策: vim /etc/sysconfig/selinuxファイルを変更し、 SELINUX=enforcing 改為SELINUX=disabled変更して、仮想マシンを再起動します。

これで、Docker でワンクリックで springcloud プロジェクトをデプロイする方法についての記事は終了です。Docker で springcloud をデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

<<:  Vue3 ベースのスクリプト設定構文 $refs の使用

>>:  よくある CSS のヒントと経験談 11 選

推薦する

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...

JavaScript 非同期プログラミングにおける Promise の初期の使用法の詳細な説明

1. 概要Promise オブジェクトは、ES6 で提案された非同期プログラミングの仕様です。非同期...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

Docker に ElasticSearch をインストールする方法を 1 つの記事で解説

目次序文1. Dockerをインストールする2. ElasticSearchをインストールする3. ...

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

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

FlashFXP FTP クライアント ソフトウェア登録クラッキング方法

FlashFXPのダウンロードアドレスは、https://www.jb51.net/softs/95...

ポップアップ効果を実現するにはjsを使用します

この記事の例では、ポップアップ効果を実現するためのjsの具体的なコードを参考までに共有しています。具...

MySQLインスタンスを安全にシャットダウンする方法

この記事では、mysqld プロセスをシャットダウンするプロセスと、MySQL インスタンスを安全か...

MySQL における := と = の違いをグラフィカルに紹介

:= と = の違い=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

MySQLインデックスを最適化する方法

1. MySQL のインデックスの使用方法インデックスは、特定の列の値を持つ行をすばやく見つけるため...

MySQL 8.0.11 インストール概要チュートリアル図

インストール環境: CAT /etc/os-release CentOS システムのバージョン情報を...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

IDEA 2020.3.1 で Tomcat をデプロイし、最初の Web プロジェクトを作成するプロセスの詳細な説明

目次Tomcat の紹介Tomcat の展開Web プロジェクトの作成tomcatの設定プロジェクト...

JS オブジェクト配列の重複排除のための 3 つの方法の例と比較

目次1. 重複排除前後のデータの比較2. 使い方1. フィルターとマップを使用する2. 削減を使用す...