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

推薦する

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...

jQueryはシンプルなコメントエリアを実装します

この記事では、参考までに、簡単なコメントエリアを実装するためのjQueryの具体的なコードを紹介しま...

Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します

目次序文: 1. Dockerをインストールする2. DockerでJenkinsをインストールする...

MySQL で重複時間を削除して時間差を計算する実装

目次必要:ドライブ:アイデア:成し遂げる:個人的には、実際の開発ではストアド プロシージャの使用はお...

Dockerカスタムネットワークの詳細な紹介

目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...

Flask アプリケーションの Docker デプロイ実装手順

1. 目的Flask アプリケーションをローカルで作成し、Docker でパッケージ化し、独自のサー...

Linux でテキストを表示するためのヒント (非常に実用的!)

序文日常の開発では、サーバー上でさまざまなテキストやログの表示操作を実行する必要があることがよくあり...

VMware Workstation 14 Pro(仮想マシン)にシステムをインストールする方法の詳細な説明

この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...

MySQL 8の新機能ウィンドウ関数の役割

MySQL 8.0 の新機能は次のとおりです。 Unicode 9.0 をすぐに完全にサポートウィン...

Ubuntu 20.04 オペレーティング システムの VMware インストール チュートリアル図

メモ: とにかく体験してみましょう。記録: NO.209この例の環境:仮想マシン: vmwareオペ...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

Vue要素ツリーコントロールに点線を追加する詳細な説明

目次1. 成果を達成する2. 実装コード3. その他の実装要約する1. 成果を達成する 2. 実装コ...

MySQLインデックスを最適化する方法

1. MySQL のインデックスの使用方法インデックスは、特定の列の値を持つ行をすばやく見つけるため...

負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例

Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...

Linux での MySQL 5.7.19 のインストールに関する問題の概要

初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...