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

推薦する

dl、dt、dd リスト ラベルの例

dd タグと dt タグはリストに使用されます。通常は <ul><li> タ...

最新の人気スクリプトAutojsソースコード共有

今日は、最新の人気スクリプト 50 個を含むソース コードを共有します。現在、Mine Guard ...

小規模プログラムへのデータキャッシュ機構の応用と実装

ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...

kindとDockerを使用してローカルKubernetes環境を起動する

導入Kubernetes を使い始めるのに丸一日を費やしたことはありませんか?最近登場したいくつかの...

Linux での stat 関数と stat コマンドの使用法の詳細な説明

stat 関数と stat コマンドLinux ファイル内の [inode = インデックス ノード...

MySQLで時間別データと最後の時間別データの差をクエリするアイデアの詳細な説明

1. はじめに要件は、特定の時間範囲内で、1 時間ごとのデータと前の 1 時間ごとのデータの差と比率...

MYSQL 5.6 スレーブレプリケーションの展開と監視

MYSQL 5.6 スレーブレプリケーションの展開と監視MYSQL 5.6 のインストールと展開 #...

CSS における位置指定の概要

CSS には 4 種類の配置方法があり、シナリオによって効果が異なります。ここでは、これら 4 種類...

MySQLクエリの基本的なクエリ操作の学習

序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...

MySQL 8.0.19 インストールチュートリアル

公式サイトからインストールパッケージをダウンロードします: mysql-8.0.19-linux-g...

Dockerが新しいイメージをロードした後にリポジトリとタグ名が両方ともnoneになる問題を解決する

次のコマンドを使用できます: docker tag [イメージID] [名前]:[バージョン]例えば...

モバイル端末での Vue2.x Picker のグローバル呼び出し実装

目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...

オブジェクト内のフィールドを削除する js メソッド

この記事では主に、オブジェクト内のフィールドを削除するための js の実装を紹介し、次のように共有し...

CSS3のtransform属性で実装される4つの機能

CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...

Linux インストール MySQL チュートリアル (バイナリ配布)

このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...