アイデアを通じてプロジェクトを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 の使用に関する詳細な説明

推薦する

製品の拡大鏡効果を実現する JavaScript

この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード

この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

CSS を使用して複数の方法で等幅レイアウトを実装するサンプルコード

この記事で説明する等幅レイアウトでは、純粋な CSS を使用して、要素の幅を手動で設定することなく、...

MySQLとRedisキャッシュ間の同期ソリューションについての簡単な説明

目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...

MySQL 実験: explain を使用してインデックスの傾向を分析する

概要インデックス作成は、MySQL で習得しなければならないスキルであり、MySQL クエリの効率を...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...

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

W3C では、さまざまなタグの規定を設定するだけでなく、Web ページの作成者が実際に W3C 規...

簡単な計算機を実装する小さなプログラム

この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...

2秒以内にHTMLページ内の他のページにリダイレクトする方法

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

CentOS 7.3 で Nginx 仮想ホストを設定する方法

実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...