イメージのパッケージ化とワンクリック展開を実現するために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 検証に合格するにはどうすればいいですか?

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

推薦する

モバイルウェブ画面適応(rem)

序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

画像の半透明処理 画像と半透明の背景の実装のアイデアとコード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

HTMLチェックボックス説明テキストをクリックして状態を選択/チェック解除します

Web 開発では、チェックボックスは小さく、ユーザーにとって操作があまり便利ではないため、ユーザーが...

TypeScript デコレータ定義

目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...

Centos7 システムでの python2 と python3 の共存

最初のステップは、Python のバージョン番号とインストール パスを確認することです。 上記のビュ...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

Centos7 ベースの Nginx Web サイト サーバーの構築の詳細説明 (仮想 Web ホストの構成を含む)

1. Nginx サービス基盤Nginx (エンジン x) は、パフォーマンスの最適化のために特別...

JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装

少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみま...

Docker のポート解放失敗の解決策

今日、非常に奇妙な状況に遭遇しました。docker イメージを更新した後、docker-compos...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

Ubuntu 18.04 のsources.listをAlibabaまたはTsinghuaミラーに変更する方法

1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...