イメージのパッケージ化とワンクリック展開を実現するためにDockerを組み合わせたアイデア

イメージのパッケージ化とワンクリック展開を実現するためにDockerを組み合わせたアイデア

1. サーバーにDockerをインストールする

yumでdockerをインストール

設定ファイルを変更し、ポート2375を開きます。

[root@microservice ~]# vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd-current \ の後に -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock を追加します。
設定ファイルを再ロードして起動します:

systemctlデーモンリロード
systemctl ドッカーを起動する

付録: Docker操作関連コマンド

systemctl コマンドは、service コマンドと chkconfig コマンドを組み合わせたシステム サービス マネージャー コマンドです。
Dockerを起動します: systemctl start docker
Dockerを停止する: systemctl stop docker
Dockerを再起動します: systemctl restart docker
docker のステータスを確認します: systemctl status docker
起動時に開始: systemctl enable docker

2. アイデアのインストールDockerサポートプラグインと構成

1.ideaはdockerサポートプラグインをダウンロードします: Docker統合

(ショートカット キー Crtl+shift+A、Docker 統合を検索して有効にし、アイデアを再起動すると有効になります)

2. IDEA Dockerプラグインの設定

ファイル > 設定 > ビルド、実行、デプロイメント > Docker > 次のように構成します。

tcp://サーバIPアドレス:2375

注:次の「接続成功」というプロンプトが表示された場合、接続が成功したことを意味します。

3. pom ファイルを設定します。

<ビルド>
  <finalName>${プロジェクト.アーティファクトId}</finalName>
  <プラグイン>
    <プラグイン>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <構成>
        <fork>本当</fork>
      </構成>
    </プラグイン>
    <!-- ユニットテストをスキップ -->
    <プラグイン>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <構成>
        <skipTests> 真</skipTests>
      </構成>
    </プラグイン>
    <!--docker-maven-plugin プラグインを使用する-->
    <プラグイン>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <バージョン>1.0.0</バージョン>
      <!-- プラグインを特定のフェーズにバインドして実行します -->
      <処刑>
        <実行>
          <id>ビルドイメージ</id>
          <!-- ユーザーは mvn package を実行するだけで、mvn docker:build が自動的に実行されます -->
          <phase>パッケージ</phase>
          <目標>
            <goal>ビルド</goal>
          </目標>
        </実行>
      </処刑>
      <構成>
        <!-- 生成されたイメージ名を指定します -->
        <imageName>fred/${project.artifactId}</imageName>
        <!--タグを指定-->
        <画像タグ>
          <imageTag>最新</imageTag>
        </画像タグ>
        <!-- Dockerfile パスを指定します -->
        <dockerディレクトリ>src/main/docker</dockerディレクトリ>
        <!-- リモート Docker API アドレスを指定します -->
        <dockerHost>http://サーバーのIPアドレス:2375</dockerHost>
        <!-- 以下は、jar パッケージを docker コンテナの指定されたディレクトリにコピーするための構成です -->
        <リソース>
          <リソース>
            <ターゲットパス>/</ターゲットパス>
            <!--jar パッケージが配置されているパスはターゲット ディレクトリに対応します -->
            <ディレクトリ>${project.build.directory}</ディレクトリ>
            <!-- Dockerfile に追加されたファイル名に対応する、含める必要のある jar パッケージ -->
            <include>${project.build.finalName}.jar</include>
          </リソース>
        </リソース>
      </構成>
    </プラグイン>
  </プラグイン>
</ビルド>

添付のプロジェクト ディレクトリ構造:

4. ルートディレクトリにDockerfileを書き込む

# Dockerファイル
# openjdk:8-jdk-alpine のイメージに基づいています
 
ボリューム /opt/tmp
 
sg-business.jar app.jar を追加します
 
# -Djava.security.egd=file:/dev/./urandom は、Tomcat の起動が遅くなる問題を解決できます。# 詳細については、https://www.cnblogs.com/mightyvincent/p/7685310.html を参照してください。
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
 
# 外部ポート EXPOSE 8081

5. ビルドするMavenパッケージをクリックします

成功するメッセージを構築する

6. 下部の docker をクリックして、docker インターフェイスに移動します。docker をダブルクリックしてサーバーに接続します。Docker はサーバー上の docker イメージを表示します。生成されたイメージ (図の 2) を見つけて、[コンテナーの作成] をクリックします。

7. ポートとプロジェクトインターフェースポートを公開するようにDockerコンテナを設定し、実行してコンテナを起動します。

最後に、セットアップが完了したらコンテナを起動します。起動が成功したら、Alibaba Cloud にアクセスして正常に起動されているかどうかを確認します。

参考ブログアドレス:

https://www.jianshu.com/p/186e9926600e

https://blog.lqdev.cn/2018/07/27/springboot/chapter-fourteen/

https://www.cnblogs.com/fangts/p/10299431.html

イメージパッケージのワンクリック展開を実現するアイデア収集Dockerに関するこの記事はこれで終わりです。イメージパッケージのワンクリック展開を実現するアイデア収集Dockerに関するその他の関連記事については、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • アイデアを通じてプロジェクトをDockerにパッケージ化する方法
  • SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)
  • DockerをIDEAに統合してパッケージングを実現する方法

<<:  W3C 検証に合格するにはどうすればいいですか?

>>:  不規則な投影を実現するためのボックスシャドウとドロップシャドウのサンプルコード

推薦する

Linux で AutoFs マウント サービスをインストールするチュートリアル

Samba サービスでも NFS サービスでも、サーバーの起動時にリモート共有リソースが自動的にマ...

docker 環境でのデータベース バックアップ (postgresql、mysql) のサンプル コード

目次posgresql バックアップ/リストアMySQL バックアップ/復元posgresql バッ...

JS 関数のアンチシェイクと関数スロットリングを理解する方法

目次概要1. 関数デバウンス2. 機能スロットリング(スロットル)概要関数アンチシェイクと関数スロッ...

CSS で中空マスク レイヤーを実装するサンプル コード

この記事の内容: ページ中空マスクレイヤー、ページ中空マスクガイドレイヤー、画像中空マスク通常のマス...

iconfontアイコンライブラリをvueに導入するエレガントな実践記録

目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...

Windows 上で Zookeeper サーバーを構築するチュートリアル

インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...

JS 内の Json 文字列 + Cookie + ローカルストレージ

目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...

ウェブデザインにおける装飾要素の応用の概要

<br />序文: このチュートリアルを読む前に、序文を注意深く読んでください。そうしな...

フレックスレイアウトによるシームレスなスクロールのサンプルコード

この記事では、シームレスなスクロールを実現するためのフレックスレイアウトのサンプルコードを主に紹介し...

さまざまなブラウザでのhrタグの説明

通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...

CSS スタイルが機能しない (史上最も完全な解決策の概要)

ページを作成するときに、記述した CSS スタイルが有効にならないことがあります。この現象にはさまざ...

MySQL インストール プロンプト「詳細なヘルプについては NET HELPMSG 3534 と入力してください」の解決方法

今日、MySQL をインストールすると次のエラー メッセージが表示されます。 かなり長い時間ネットで...

Navicat が MySQL にリモート接続するときに発生する 10060 不明エラーを解決する方法

はじめに:今日は、サーバー上のMySQLにリモート接続したいと思います。使用するソフトウェアはNav...