docker、docker-compose を使用してマイクロサービスをデプロイする

1. Docker デプロイメントを使用する

1. 準備する

ここでは、Docker に Redis と nacos がインストールされて起動され、「ruoyi-gateway-prod.yml」ファイルが設定されています。

なお、設定ファイルにRedis、MySQL、nacosなどの接続情報がある場合は、IPアドレスをサーバーのパブリックネットワークアドレスまたはイントラネットアドレスに変更する必要があり、接続は失敗しません。
ここに画像の説明を挿入

2.jarパッケージをアップロードする

ここでは、マイクロサービス版 Ruoyi のゲートウェイ サービスを例として、指定したディレクトリにアップロードします。

ここに画像の説明を挿入

3. dockerfile を作成する

公式ドキュメント:

https://docs.docker.com/engine/reference/builder/

英語は少し難しいようですが、Ruoyi の中国語チュートリアルがここにあります

ここに画像の説明を挿入

これはゾーイの文書アドレスです:

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#dockerfile

まず、イメージの構築に必要な基本イメージ、つまり jdk イメージを取得し、最初に jdk イメージを確認します。

docker search openjdk

ここに画像の説明を挿入
jdk8の画像はこちら

docker pull openjdk:8-jre

ここに画像の説明を挿入
以前に取得したことがありますが、最初は少し遅いかもしれません。

次に、dockerfile という名前のファイルを作成します。ファイル名はカスタマイズできます。通常は dockerfile です。内容は次のとおりです。
ここにコードスニペットを挿入

# 基础镜像
FROM  openjdk:8-jre
# author
LABEL author="gan"

# 创建目录
RUN mkdir -p /home/jar
# 指定路径,后面运行的jar包就是在这个目录
WORKDIR /home/jar
# 挂载目录
VOLUME /home/jar

# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录
COPY ./ruoyi-gateway.jar /home/jar/ruoyi-gateway.jar

# 启动网关服务jar包
ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-gateway.jar"]

jarパッケージと同じディレクトリにアップロードします

ここに画像の説明を挿入

複数のファイルをコンテナにコピーしたい場合は、これを行うことができます

ここに画像の説明を挿入

3. イメージとコンテナを構築する

現在のディレクトリにイメージをビルドします。次の「.」は冗長ではないことに注意してください。コマンドは次のとおりです。

docker build -f /www/wwwroot/changjing/jar/gateway/dockerfile -t ruoyi-gateway .

説明する:

-f: dockerfile のパスが続きます。
-t: ビルドされたイメージにラベルを付けます。これは、ビルドされたイメージの名前です。

知らせ:

ビルド イメージを実行するコマンドは、dockerfile が配置されているディレクトリに存在する必要があります。dockerfile の「COPY」コマンドは、dockerfile からの相対ディレクトリにのみ存在でき、絶対ディレクトリの場合はエラーが報告されるためです。ホストはビルドに使用されます。

実行結果は以下の通りです。

ここに画像の説明を挿入

ビルドは成功しました。以前にビルドに成功したことがあり、最初のビルドとは異なる可能性があります。

次にミラーを開始します。コマンドは次のとおりです。

docker run -d --name ruoyi-gateway -p 8010:8010 ruoyi-gateway

説明する:

–name: コンテナ名が続きます。これはここでのイメージ名と同じです。
-p: ホストとコンテナ間のポート マッピングが続きます。「:」の前はサーバー ポート、「:」の後ろは最後のポートです
。シータコンテナのイメージ名です

コンテナが実行されていることがわかります。

ここに画像の説明を挿入

2. docker-compose を使用してデプロイする

docker-compose を使用したサービスのデプロイは docker デプロイに基づいており、docker-compose.yml ファイルを追加してサービス コンテナを統合的に管理し、すべてのサービス コンテナを開始または終了するコマンドを実装するため、docker-compose デプロイを使用するには、まず docker デプロイメントの使用方法を学ぶ必要があります。これは、初期段階では面倒ですが、後の段階では快適な、快適なデプロイメント方法です。

Ruoyi には関連するチュートリアルもあります。

http://doc.ruoyi.vip/ruoyi-cloud/cloud/dokcer.html#docker-compose

1. サービス用の jar パッケージと dockerfile を準備します

Ruoyi にゲートウェイの jar パッケージと dockerfile を保持していることに基づいて、認証の jar パッケージと dockerfile を追加します。認証の dockerfile はゲートウェイと同様で、次のようになります。

# 基础镜像
FROM  openjdk:8-jre
# author
LABEL author="gan"

# 创建目录
RUN mkdir -p /home/jar
# 指定路径
WORKDIR /home/jar
# 挂载目录
VOLUME /home/jar

# 复制jar文件到路径,第一个是宿主机文件目录(dockerfile所在目录,不能是绝对路径),第二个是容器文件目录
COPY ./ruoyi-auth.jar /home/jar/ruoyi-auth.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","ruoyi-auth.jar"]

ここに画像の説明を挿入

指定したフォルダーにアップロードする

ここに画像の説明を挿入

ここに画像の説明を挿入

2. docker-compose.yml ファイルを作成します。

公式 Web サイトの docker-compose.yml ファイルに対応する docker バージョン
ここに画像の説明を挿入

私のDockerバージョンは次のとおりです。

ここに画像の説明を挿入

したがって、docker-compose.yml のファイル バージョンは 3.8 です。

ファイルには、次のようにゲートウェイと認証関連のコンテンツのみが含まれています。

# 描述 Compose 文件的版本信息
version : '3.8'

# 定义服务,可以多个,每个服务中定义了创建容器时所需的镜像、参数、依赖等
services:
  ruoyi-gateway:  # 服务名称,跟构建镜像名称有关,假如image值为空,那么生成的镜像名称为“docker-compose.yml文件所在目录名称_ruoyi-gateway”,我放在jar目录,生成的镜像名称就是jar_ruoyi-gateway
    image: ruoyi-gateway  # 构建镜像名称
    container_name: ruoyi-gateway   # 容器名称
    build:
      context: ./gateway    # 构建镜像的jar包和dockerfile文件所在的目录(相对于docker-compose.yml文件,我这里gateway目录是跟docker-compose.yml文件同一目录)
      dockerfile: dockerfile  # 构建网关镜像的文件名称
    ports:
      - "8010:8010"   # 构建容器端口号,“:”前为宿主机端口,“:”后为容器端口
  ruoyi-auth:
    image: ruoyi-auth
    container_name: ruoyi-auth
    build:
      context: ./auth
      dockerfile: dockerfile
    ports:
      - "9200:9200"

ファイルが書き込まれたら、指定したディレクトリにアップロードします

ここに画像の説明を挿入

3. docker-compose の共通コマンド

(1) フォアグラウンドにミラーを作成し、コンテナを起動します

java -jar コマンドを使用して jar パッケージを開始する場合と同様に、docker-compose.yml ファイルが配置されているディレクトリで実行することに注意してください。コマンドは次のとおりです。

docker-compose up

ここに画像の説明を挿入
ウィンドウを閉じるとサービスが停止します。サービスを初めて起動するときに使用できます。サービス名は左端にあります。各サービスでログ エラーが表示されなければ、起動は成功しています。 。

ここに画像の説明を挿入
Ctrl+Cで終了しますが、閉じても作成したイメージとコンテナはまだ存在します。

ここに画像の説明を挿入

(2) バックグラウンドでミラーを作成し、コンテナを起動します

また、 docker-compose.yml ファイルが配置されているディレクトリでも実行する必要があります。コマンドは次のとおりです。

docker-compose up -d

ここに画像の説明を挿入

docker-compose.yml ファイルのパスを指定することもできます。コマンドは次のとおりです。

docker-compose -f /www/wwwroot/changjing/jar/docker-compose.yml up -d

ここに画像の説明を挿入

実行では各サービス起動のログは出力されません。ログを表示する必要があります。次のコマンドを使用して表示できます。

docker-compose logs

ここに画像の説明を挿入
ruoyi-auth サービスのログのみを表示したい場合は、次のコマンドを使用できます。

docker-compose ログ ruoyi-auth

ここに画像の説明を挿入

(3)、起動したコンテナを表示します

docker-compose.yml ファイルによって開始されたすべてのコンテナーを表示できます。コマンドは次のとおりです。

docker-compose ps

ここに画像の説明を挿入

サービス名を指定することもできます。たとえば、ruoyi-auth が開始されているかどうかを確認するために実行します。コマンドは次のとおりです。

docker-compose ps ruoyi-auth

ここに画像の説明を挿入

docker-compose.yml ファイルが配置されているディレクトリでのみ実行でき、他のディレクトリで実行するとエラーが報告されることに注意してください。

ここに画像の説明を挿入

4. サービスの停止(削除を含む)

イメージを削除せずにすべてのサービス コンテナを停止して削除するには、コマンドは次のとおりです。

docker-compose down

イメージはまだ存在していますが、対応するコンテナーが削除されていることがわかります。

ここに画像の説明を挿入
サービス コンテナに対応するイメージを表示するには、コマンドは次のとおりです。

docker-compose images

ここに画像の説明を挿入

プロジェクト内のすべてのサービスのコンテナー、ネットワーク、およびミラーを停止して削除します。コマンドは次のとおりです。

docker-compose down --rmi all

ここに画像の説明を挿入
このメソッドは、jar パッケージが再アップロードされた場合に停止するために使用できます。

5.サービスコンテナの起動

プロジェクト内のすべてのサービスのコンテナーを開始します。コマンドは次のとおりです。

docker-compose start

ここに画像の説明を挿入
上記のコマンドにコンテナ名を追加して、指定したコンテナを起動することもできます。たとえば、ゲートウェイ コンテナのみを起動します。コマンドは次のとおりです。

docker-compose start ruoyi-gateway

ここに画像の説明を挿入

6. サービスコンテナを閉じます

プロジェクト内のすべてのサービス コンテナを閉じます。コマンドは次のとおりです。

docker-compose stop

ここに画像の説明を挿入
上記のコマンドにコンテナ名を追加して、指定したコンテナを閉じることもできます。たとえば、認証コンテナのみを閉じます。コマンドは次のとおりです。

docker-compose stop ruoyi-auth

ここに画像の説明を挿入

7. サービスコンテナを再起動します

プロジェクト内のすべてのサービス コンテナを再起動します。コマンドは次のとおりです。

docker-compose restart

ここに画像の説明を挿入

上記のコマンドにコンテナ名を追加して、指定したコンテナを再起動することもできます。たとえば、認証コンテナのみを再起動します。コマンドは次のとおりです。

docker-compose restart ruoyi-auth

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/studio_1/article/details/132235696