アイデアを通じてプロジェクトをDockerにパッケージ化する方法

アイデアを通じてプロジェクトをDockerにパッケージ化する方法

多くの友人が、Docker でプロジェクトを実行する方法をずっと知りたがっていました。今日は、自分のプロジェクトを Docker (Centos) に公開する方法を紹介します。

仮想マシンをインストールするDockerをダウンロードする

公式ウェブサイトのリンクに直接アクセスしてください:Docker 公式ドキュメント。

1.公式ホームページを開き、ダウンロードとインストールを選択します

表紙

2. Linux用のDockerを選択する

Linux用のDockerを選択する

3. CentOSのバージョンを選択します(システムに応じて適切なバージョンを選択してください)

Centosを選択

4. 公式サイトの操作手順に従う(必要な手順を自分で選択する)

手順に従ってください

1) 以前にインストールしたDockerを削除する(必須)

sudo yum dockerを削除します\
                  dockerクライアント\
                  docker-client-最新 \
                  docker-common \
                  docker-最新 \
                  docker-最新-logrotate \
                  docker-logrotate \
                  dockerエンジン

2) yumツールパッケージをインストールする(必須)

sudo yum インストール -y yum-utils

3) Dockerリポジトリを追加する(必須)

 sudo yum-config-manager \
    --リポジトリを追加\
    https://download.docker.com/linux/centos/docker-ce.repo

4) オプションパラメータ(選択に応じて追加)

オプションパラメータ

5) Docker Engine をインストールします (必須。他のバージョンをインストールする場合は、この手順をスキップできます)

sudo yum インストール docker-ce docker-ce-cli containerd.io

6) Docker のオプション バージョンを表示します (手順 5 を完了している場合は、この手順をスキップしてください)

yum list docker-ce --showduplicates | sort -r

7) 必要に応じて特定のバージョンの Docker をインストールします (手順 5 を完了している場合は、この手順をスキップしてください)

 sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

8) Dockerを起動する(必須)

sudo systemctl dockerを起動します

9) 起動時にDockerが自動的に起動するように設定する(オプション)

systemctl ドッカーを有効にする

10) Docker イメージ アクセラレーションを設定する (オプション、イメージのダウンロード速度を上げることができます)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "レジストリミラー": ["https://sfgi0c9b.mirror.aliyuncs.com"]
}
終了
sudo systemctlデーモンリロード
sudo systemctl dockerを再起動します

5. Docker がインストールされたので、Web プロジェクトを手動でイメージにデプロイして、Docker の状態をテストします。プロジェクトを Docker に公開する方法を知りたい場合は、この手順をスキップできます。

Web プロジェクトを手動で Docker にデプロイする

1. Webプロジェクトを作成してパッケージ化する(war)
リンク: プロジェクトをダウンロードしてください。
2. tomcat イメージをダウンロードします。すべてのイメージは docker hub で検索できます。

リンク: docker hub。

docker hubで検索するとエラーメッセージが表示されるのはto​​mcat
適切な画像バージョンを選択してください

tomcat8をインストールします。タグタブを選択し、バージョンを選択します。

ダウンロードする適切なバージョンを選択してください

docker pull tomcat:8.5-jdk8-corretto

画像をダウンロード

画像をダウンロード

3. ダウンロードした画像を表示する

Docker イメージ

ミラーを見る

4. イメージのインスタンスを実行してフォルダを作成する

mkdir -p /mydata/tomcat/webapps

Webプロジェクトを/mydata/tomcat/webappsディレクトリにアップロードします。

rzコマンドをインストールします(ファイル転送ツールをお持ちの場合は、独自のツールを使用できます)

yum インストール lrzsz
cd /mydata/tomcat/webapps

rzコマンドを実行してファイルをアップロードします

rz

ファイルの転送

ファイルが存在するか確認する

ls

ファイルを表示

Tomcatインスタンスを起動する

docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 8080:8080 d2b

d2b はイメージ ID の最初の 3 文字です。イメージ名とタグを記述できます。--name はインスタンスに名前を付けます。
-v は、コンテナ外のディレクトリ mydata/tomcat/webapps とコンテナ内の /usr/local/tomcat/webapps ディレクトリを一緒にマウントし、コンテナに入らずにプロジェクトを外部に直接アップロードできるようにします。
-p は、内部ポート 8080 を外部ポート 8080 にバインドします。外部ポート 8080 を介してコンテナの内部ポート 8080 にアクセスできます。これら 3 つのパラメータは最も重要なパラメータです。その他のパラメータについては、docker run パラメータ テーブルを参照してください。詳細リンク: docker run パラメータ。

ファイルを表示

現在のプロジェクト パッケージが解凍され、例が実行されていることがわかります。

docker ps (実行中のインスタンスを表示する) 

docker ps -a (開始済みと未開始のものを含むすべてのインスタンスを表示) 

インスタンスの起動を表示

インスタンスが開始され、効果を試すことができます

http://192.168.240.3:8080/hello/

5. ポート番号を 80 に変更するにはどうすればいいですか?

1) 元のインスタンスを停止して削除する

docker 停止 tomcat
docker rm <インスタンスID> 

インスタンスID

2) インスタンスを再実行してポート80をマップする

tomcat の webapps ディレクトリに docker run を実行します。

3) コンテナに入る

docker exec -it tomcat /bin/bash   
tomcatは作成されたばかりのインスタンス名です

4) /usr/local/tomcat/conf/server.xml を見つけて変更します。コンテナに入る方法は外部操作と同じです。

vi /usr/local/tomcat/conf/server.xml 

ポート80に変更

5) コンテナから出る

出口

6) コンテナを再起動する

docker で tomcat を再起動する
// コンテナが起動時に自動的に起動するように設定する docker update --restart=always <コンテナ名>

6. コンテナをパッケージ化して他の場所にデプロイするにはどうすればよいですか?
完成したコンテナを画像にパッケージ化することができます
1) コンテナ包装を画像化する
docker commit -a -m <コンテナID> <自分のコンテナ名>

docker commit -a "zhnagdong" -m "test" d98 tomcattest

2) パッケージ化された画像を表示する

Docker イメージ

パッケージ化された画像を表示する

次に、イメージを 2 つの方法でエクスポートします。1 つ目は、ファイルを直接エクスポートして移動する方法です。2 つ目は、Docker Hub にアップロードしてからリモートでプルする方法です。
3) ファイルをエクスポートしてコマンドを直接実行する

docker save -o tomcat.tar 814
//-o はファイル 814 として保存された画像の ID を表します

エクスポートした画像を表示する

適切な場所にコンテナをインポートする

docker load --input tomcat.tar または docker load < tomcat.tar

4) docker リポジトリにアップロードする (まず登録するために docker hub アカウントを持っている必要があります)
まずタグを入力する必要があります

docker タグ tomcattest:latest dwyerdocker/tomcattest:v1

//tomcattest:latest 形式は REPOSITORY:TAG です
// dwyerdocker/tomcattest:v1 形式は username/name:tag です。名前とタグは自分で作成します。ユーザー名は docker hub 上のユーザー名である必要があります。そうでない場合は、ウェアハウスにプッシュできません。

Docker Hubアカウントを登録する

Docker Hubアカウントにログインする

dockerログイン

イメージをリモートリポジトリにプッシュする

docker push dwyerdocker/tomcattest:v1

弊社の倉庫に来て、適切な場所から画像を取得してください

ここに画像の説明を挿入

上記は、docker の基本的な使用方法です。次に、idea を使用して docker イメージを構築し、プロジェクトをデプロイする方法について説明します。

アイデアを通じてプロジェクトをDockerにデプロイする

1. まず、docker 構成ファイルを変更して、リモートからアクセスできるようにします。docker はデフォルトで tcp プロトコルをサポートしていないため、tcp プロトコルを有効にするには、docker 構成ファイルを開く必要があります。

vi /lib/systemd/system/docker.service 

Docker 設定ファイル

Execstart -H tcp://0.0.0.0:2375 の最後に TCP プロトコルを設定します。

TCPプロトコルを設定する

Dockerを再起動する

systemctlデーモンリロード
systemctl dockerを再起動します

プロセス情報を見ると、dockerはすでにtcpプロトコルをサポートしていることがわかりました。

ps -ef | grep docker 

作品鑑賞情報

2. ideaにdockerプラグインがインストールされていることを確認する

Dockerプラグイン

3. ルートパスにDockerFileファイルを作成する

Dockerfileを作成する

java:8より
ボリューム /tmp
/target/spring-demo-0.0.1-SNAPSHOT.jar app.jar を追加します。
エクスポーズ8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

4. dockerが接続されているかどうかをテストする

ここに画像の説明を挿入

アクセスタイムアウトが発生した場合は、ファイアウォールが閉じられているかどうかを確認してください。

systemctl 停止 ファイアウォール

5. 設定を追加する

設定を追加

公開ポート番号を設定する

ここに画像の説明を挿入
ここに画像の説明を挿入

6. プロジェクトをパッケージ化する

パッケージプロジェクト

7. 右クリックして展開する

デプロイする前に Docker を再起動することをお勧めします。ポート番号の競合に注意してください。

ここに画像の説明を挿入

8. 効果を確認する

最終結果

これで、アイデアを通じてプロジェクトを Docker にパッケージ化する方法についての説明は終わりです。Docker へのアイデアのパッケージ化に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  CSS3 @mediaの基本的な使い方のまとめ

>>:  MySQL sql_mode の使用に関する詳細な説明

推薦する

CentOS仮想マシンの時刻を変更する方法

上はシステム時間、下はハードウェア時間です。ここでは変更を加えているので、同じくらいの速さになってい...

進捗バーのネイティブ JavaScript 実装

進捗バーを実装するためのJavaScriptの具体的なコードは参考までに。具体的な内容は次のとおりで...

JavaScript ベースのパスワード ボックス検証情報の実装

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

Ubuntu システムでタイムゾーンと時刻を変更する方法

Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...

Vue はグラフィック検証コードログインを実装します

この記事では、グラフィック認証コードログインを実装するためのVueの具体的なコードを参考までに紹介し...

よく使用される入力テキストボックスの内容は自動的に垂直方向に中央揃えされ、クリックするとデフォルトのプロンプトテキストは空になります。

3つの機能: 1. コンテンツの垂直方向の自動中央揃え2. デフォルトのプロンプトテキストは灰色で表...

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...

JavaScript デザインパターン 責任連鎖パターン

目次概要コードの実装パラメータ定義成し遂げる責任連鎖パターンの実装改善概要責任チェーン パターンは、...

検索ナビゲーションバー付きの CSS サンプルコード

この記事では、CSS を使用して検索機能付きのナビゲーション バーを作成する方法を説明します。以下の...

サイバーパンクスタイルのボタンを実現するためのHTML+CSS

まず効果を見てみましょう: 序文:このアイデアは、Bilibili のアップロード者 Steven ...

Nginx のパフォーマンスを向上させるための提案

Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

Vue バッチ更新 DOM 実装手順

目次シーン紹介深い応答性トリガーゲッターDep.targetを探すゲッターセッター要約するシーン紹介...