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 データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

Nginx/Httpd ロードバランシング Tomcat 設定チュートリアル

前回のブログでは、Nginx と httpd を使用して、逆生成用のバックエンド Tomcat サー...

MySQL 文字セットの概要

目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...

MySQL の null 可能フィールドは NULL に設定する必要がありますか、それとも NOT NULL に設定する必要がありますか?

MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...

Navicat Premier の MySQL へのリモート接続エラー 10038 の解決方法

MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

rpm を使用して指定されたバージョンの docker (1.12.6) をインストールする詳細な手順

1. 理由システムが Centos7.3 の場合、yum install docker を使用して直...

Vue はカードフリップカルーセル表示を実装します

Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...

TypeScript の Enum が問題となる理由

目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...

Oracle Rownum 書き込みに似た MySQL の詳細な例

Rownum は、Oracle での独自の書き込み方法です。Oracle では、rownum を使用...

CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)

Docker デーモンは、 HTTP_PROXY 、 HTTPS_PROXY 、およびNO_PRO...

Linux での nginx のインストール、展開、使用方法の詳細な説明

目次1. ダウンロード2. 展開3. Nginxログ関連の設定4. ファイルダウンローダーとして n...

Dockerコンテナにnginxを簡単にデプロイするプロセスの分析

1. コンテナにnginxサービスをデプロイするcentos:7 イメージはコンテナを実行し、このコ...