Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

序文

退社前に、ある依頼を受けました。基本イメージ規格の変更により、最新の Docker イメージ規格に従って、独自アプリケーションのカスタムイメージを構築する必要が生じたのです。現在の標準は次のとおりです。インフラストラクチャ グループは、すべてのプロジェクトがアクセスする必要がある 3 つのパブリック イメージのみを提供します。これらの 3 つのパブリック基本イメージには、JDK8、Skywalking、および Arthas が含まれます。各ビジネス グループのアプリケーションに他のイメージを追加する必要がある場合、各ビジネス グループはインフラストラクチャ グループによって提供されるパブリック イメージに基づいて独自のカスタム イメージを追加します。構造図は次のとおりです。

ビルド手順

Dockerfileの作成

最新の仕様に基づいて、Dockerfile を記述し、インフラストラクチャ グループによって提供されるベース イメージを参照して、アプリケーションに必要なその他のイメージを追加する必要があります。最終的な Dockerfile は次のようになります。

ベースイメージのアドレスから apk を実行して、追加するカスタムイメージを追加します...

Centos7にDocker環境をインストールする

古いバージョンをアンインストールする

Docker の古いバージョンは、docker または docker-engine と呼ばれていました。これらのプログラムがインストールされている場合は、それらおよび関連する依存関係をアンインストールします。

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

Docker Engine をインストールする - コミュニティ

Dockerリポジトリを使用してインストールする

新しいホストに Docker Engine-Community を初めてインストールする前に、Docker リポジトリを設定する必要があります。その後、リポジトリから Docker をインストールして更新できます。

倉庫の設置

必要なパッケージをインストールします。 yum-utils は yum-config-manager を提供し、デバイス マッパー ストレージ ドライバーには device-mapper-persistent-data と lvm2 が必要です。

$ sudo yum install -y yum-utils \
 デバイスマッパー永続データ \
 lvm2

安定したリポジトリを設定するには、次のコマンドを使用します。

yum-config-manager を実行します。
 --リポジトリを追加\
 https://download.docker.com/linux/centos/docker-ce.repo

Docker Engine をインストールする - コミュニティ

Docker Engine - Community と containerd の最新バージョンをインストールするか、次の手順に進んで特定のバージョンをインストールします。

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

GPG キーを受け入れるように求められたら、[はい] を選択します。

複数の Docker リポジトリがありますか?

複数の Docker リポジトリが有効になっている場合、yum install または yum update コマンドでバージョンを指定せずにインストールまたは更新すると、常に最新バージョンがインストールされるため、安定性のニーズに適さない可能性があります。

Docker はインストール後、デフォルトでは起動されません。 docker ユーザー グループは作成されましたが、このユーザー グループにはユーザーがいません。

Docker Engine - Community の特定のバージョンをインストールするには、リポジトリ内の利用可能なバージョンを一覧表示し、選択してインストールします。

1. リポジトリで利用可能なバージョンを一覧表示して並べ替えます。この例では、結果をバージョン番号(最高から最低)で並べ替えます。

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-安定版
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-安定版
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-安定版

2. 完全なパッケージ名で特定のバージョンをインストールします。完全なパッケージ名とは、パッケージ名 (docker-ce) と、最初のコロン (:) から最初のハイフンまでのバージョン文字列 (2 番目の列) をハイフン (-) で区切ったものです。例: docker-ce-18.09.1。

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

Dockerを起動します。

$ sudo systemctl dockerを起動します

hello-world イメージを実行して、Docker Engine - Community が正しくインストールされていることを確認します。

$ sudo docker run hello-world

カスタムアプリケーションイメージの構築を開始する

Dockerfileファイルに基づいてカスタムイメージを構築する

カスタム イメージをビルドするには、Dockerfile ファイルが配置されているディレクトリで次のコマンドを実行します。

sudo docker build -f Dockerfile -t カスタムイメージ名。

企業のプライベートミラーハーバーにプッシュする前にログインしてください

dockerログイン エンタープライズプライベートハーバーアドレス ログインを完了するにはユーザー名とパスワードを入力してください

構築したカスタムイメージを企業のプライベートハーバーにプッシュする

sudo docker push カスタムイメージ名

要約する

上記の 4 つの手順により、アプリケーションのカスタム イメージの構築が完了しました。カスタム イメージは、後で自分のアプリケーションで直接使用できます。これを行う利点は、基本イメージに基づいて自由に組み合わせて、自分のアプリケーションに合ったイメージを構築できることです。これにより、柔軟性が高まり、イメージの階層管理が可能になり、スケーラビリティが向上します。

Docker を使用してエンタープライズレベルのカスタム イメージを構築する方法については、これで終わりです。Docker を使用してエンタープライズレベルのカスタム イメージを構築する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • カスタム Docker イメージを作成するための Dockerfile の詳細な説明と CMD と ENTRYPOINT 命令の比較
  • dockerカスタムイメージでphp7をビルドする方法
  • docker公式mysqlイメージのカスタム構成の詳細な説明

<<:  Vue ElementUI フォームのフォーム検証

>>:  MySQL 8.0.19 winx64 インストールチュートリアルと Windows 10 での初期パスワードの変更

推薦する

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

Vueでブラウザタイトルを動的に設定する方法の詳細な説明

目次ナンセンス文章最初ルーター/index.js 2番目1. プラグインをインストールする2.mai...

インスタンス化されたオブジェクトパラメータによるMySQLクエリ例の説明

この記事では、オブジェクト パラメータをインスタンス化して MySQL でデータをクエリする方法を紹...

React と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

最近、 Three.jsでReactを使用して、720 度のパノラマ写真を閲覧できるプロジェクトを構...

Linuxの読み取りコマンドの使用

1. コマンドの紹介read コマンドは、シェルの組み込みコマンドで、標準入力または -u オプショ...

CSS で高さが不明な垂直中央揃えを実装する

この記事では主に、高さが不明な垂直方向の中央揃えを CSS で実装する方法を紹介し、皆さんと共有しま...

MySQL 同時実行制御の原則に関する知識ポイント

Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...

CSSは5つの一般的な2D変換を実装します

CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間...

jQueryはシャトルボックス効果を実現します

この記事では、シャトルボックス効果を実現するためのjQueryの具体的なコードを参考までに紹介します...

vue data が関数である理由をご存知ですか?

公式サイトの説明: コンポーネントを定義する場合、コンポーネントは複数のインスタンスを作成するために...

MySQL 8.0.22 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

自動開始および停止コマンドを適用するには、Docker サービスを再起動します (推奨)

Docker サービス アプリケーションを再起動するコマンドを見てみましょう。具体的な内容は次のと...

Viteは仮想ファイルの実装を導入します

目次背景仮想ファイルのインポート例書類タイプスクリプトのサポート要約する背景新しいプロジェクトで v...