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

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

推薦する

WeChatアプレット認証ログインを処理するエレガントな方法

序文WeChat ミニプログラム プロジェクトでユーザー情報を取得し、ユーザー ログインを実装する場...

React antdはフォームの動的な増減を実現します

以前、動的フォームを記述しているときに落とし穴に遭遇しました。インデックスの添え字をキーとして使用す...

htm 初心者ノート(初心者は必ず読んでください)

1. HTMLとは何かHTML (ハイパーテキスト マークアップ言語): ハイパーテキスト マーク...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

Nginx の高同時実行最適化の実践

1. チューニングの必要性​ 私は、どのように書けばいいのか本当に分からないので、共有するために最適...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

HTMLフローティングプロンプトボックス機能の実装コード

一般的なフォーム プロンプトは常にフォームのスペースを占有し、フォームが長くなったり広くなったりして...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

CnBlogs カスタムブログスタイルの共有

半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...

MySQL ソート機能の詳細

目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...

MySQLはインデックスプッシュダウンを数秒で理解するのに役立ちます

目次1. インデックスプッシュダウン最適化の原理2. インデックスプッシュダウンの具体的な実践1. ...

Webスキル: 複数のIEバージョンの共存ソリューション IETester

私のおすすめ複数のIEバージョンの共存のためのソリューション以前に IE6、IE7、IE8 の共存に...

Javascriptの基本ループの詳しい説明

目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...

Win7 での mysql5.5 インストール グラフィック チュートリアル

MySQL のインストールは比較的簡単なので、通常は次のステップに直接進み、注意が必要な点に集中する...

MySQL をインストールするときに初期パスワードを忘れた場合のシンプルで効果的な解決策

MySQL をインストールすると初期パスワードが与えられますが、この初期パスワードは大文字と小文字の...