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 での初期パスワードの変更

推薦する

相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...

ElasticSearch と ElasticSearch-Head の Docker デプロイメントの実装

この記事では主にDockerを使ってElasticSearch:バージョン6.8.4をデプロイする方...

要素 UI に基づいてクエリ コンポーネントを段階的にカプセル化する方法

目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...

Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します

CI/CD の概要CIワークフロー設計Gitコードバージョン管理システムはコマンドラインでのみ管理で...

Vue ログインページ用の動的パーティクル背景プラグインの実装

目次動的パーティクル効果は次のとおりです。プラグインをインストールする動的パーティクル効果は次のとお...

仮想スクロールを簡単に実装するためのVueサンプルコード

目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...

実践的な経験を共有するためのコードチェックツールstylelintの紹介

目次序文文章1. stylelintをインストールする2. 設定ファイル3. stylelintを使...

Vueはテーブルページング機能を実装します

この記事では、テーブルページング機能を実現するためのVueの具体的なコードを例として紹介します。具体...

星のきらめき効果を実現するネイティブ js

この記事の例では、星のきらめき効果を実現するためのjsの具体的なコードを共有しています。具体的な内容...

Web デザイン スキル: iframe の適応高さの問題

おそらく、この問題にまだ遭遇していない人もいるでしょうから、まずは適応高さとは何かを説明しましょう。...

VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...

Angular 依存性注入の説明

目次概要1. 依存性注入2. Angularの依存性注入フレームワーク概要依存性注入: デザインパタ...

Docker データボリュームの一般的な操作コードの例

開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデー...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...