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 選

推薦する

SSH経由でローカルLinux仮想マシンに接続するプロセスを記録する

実験環境:物理マシン Windows 10 x64物理NIC情報IPv4 アドレス: 192.168...

HTML 要素 (タグ) とその使用法

a : ハイパーリンクの開始位置または宛先位置を示します。頭字語: 単語の最初の文字からなる略語を示...

5分でReactルーティングについてお教えします

目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...

Zabbix設定 DingTalkアラーム機能実装コード

必要Zabbix で DingTalk アラームを設定する方法は、Prometheus で Ding...

JavaScript 関数のパフォーマンスを測定するさまざまな方法の比較

目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...

MySQL ツリー構造データベース テーブル設計

目次序文1. 基本データ2. 継承駆動設計3. 左右の値のエンコーディングに基づく設計4. ツリー構...

初心者向けに Docker に Jenkins をインストールする方法を詳しく説明したチュートリアル

Jenkins はオープンソース ソフトウェア プロジェクトです。Java をベースに開発された継続...

Linux で ffmpeg をインストールするための詳細なチュートリアル

1. CentOS Linuxにffmpegをインストールする1.ダウンロードして解凍する http...

Vuexの特性と機能の詳細な説明

目次Vuex とは何ですか? Vuexの5つの特性vuex の State 機能とは何ですか? vu...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...

DockerでEurekaを設定する方法

ユーレカ: 1. JDKイメージを構築するEurekaコンテナを起動するjdkフォルダと必要なファイ...

Linux での vi (vim) の新しい使い方のまとめ

私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...

マウスを傾けた状態でのフリップナビゲーションの問題に関する研究

この記事では、マウス フリップナビゲーションの制作についてまだ疑問を持っている友人の役に立つことを期...

Linux でファイルの作成時間を取得する方法と実践的なチュートリアル

背景ファイルの作成時刻を取得する必要がある場合があります。例えば: 「xtrabackup スキーマ...

Vueの監視方法のケースの詳細な説明

Vueでの監視方法時計知らせ名前: 監視する属性に同じ名前を付ける必要があります。 1. 機能Vue...