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 選

推薦する

mysql での rpm インストールの詳細な説明

インストールとアンインストールの表示 # rpm -qa | grep mysql を表示 # アン...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

JavaScript デザインパターン プロキシパターンの学習

目次概要実装保護エージェント仮想エージェント画像の遅延読み込みを実現する仮想プロキシ概要プロキシ パ...

MySQL 完全崩壊: クエリフィルタ条件の詳細な説明

概要実際のビジネス シナリオ アプリケーションでは、ビジネス条件に基づいて対象データを取得およびフィ...

Ansible を使用した Nginx のバッチ デプロイのサンプル コード

1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...

Navicat For MySQL の使い方に関する簡単なチュートリアル

推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...

Zabbix WEB 監視実装プロセス図

Zabbix独自のWEBインターフェースを例に、Web監視の設定を行います。環境: zabbix4....

Dockerfile における ENV 命令の具体的な使用法の詳細な説明

1. Dockerfile 内の ENV 命令は、イメージの環境変数を定義するために使用されます。次...

Vue 組み込みコンポーネントのキープアライブでの LRU アルゴリズムの使用

目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...

HTML フォーム タグの使用方法を学ぶチュートリアル

HTML のフォームを使用して、ユーザーからさまざまな種類の入力情報を収集できます。フォームは、実際...

初心者向け入門チュートリアル: ドメイン名の解決とバインディング

では、ドメイン名を登録して仮想ホストを購入した後、IE でドメイン名を入力して Web サイトを開く...

Linux に Python クローラー スクリプトを展開し、スケジュールされたタスクを設定する方法

昨年、プロジェクトの必要性により、Python でクローラーを作成しました。クロールされたデータは、...

WeChatアプレットはシンプルな手書き署名コンポーネントを実装します

目次背景:必要:効果1. アイデア2. 実装1. ページとスタイル2. 初期化3. クリックすると4...

ApplicationHost.config (IIS ストレージ構成領域ファイル) の概要

新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...