Centos ベースイメージの作成方法

Centos ベースイメージの作成方法

序文

現在、私の会社で使用しているオペレーティングシステムはすべて CentOS7.4 で、アプリケーションももちろん CentOS 上にデプロイされています。デプロイに Docker を使用する場合、CentOS イメージに基づいて独自のアプリケーション イメージを構築するのは当然ですが、CentOS 基本イメージとアプリケーション イメージの間に基本フレームワーク イメージを構築することもできます。たとえば、基本 JDK イメージ、Python 環境に基づくイメージなどです。イメージを構築した後、アプリケーションをデプロイするときの中国語のプリントアウトが文字化けしたり、ログの時刻が北京時間より 8 時間短い UTC 時刻を示したり、特定のプロセスが起動しているかどうかを確認したいときに telnet コマンド、ps コマンド、netstat コマンドが使用できなかったり、ファイルを編集したいときに vim コマンドも使用できなかったりするといったことに、皆さんも遭遇したことがあると思います。今日は、CentOS イメージに基づいて拡張 CentOS イメージを構築する方法を見ていきます。

ミラーリポジトリの構築

独自のイメージを構築する前に、後で直接使用できるように、イメージを保存する場所が必要です。考え方は 2 つあります。1 つ目は、自分のマシンで構築し、コマンドdocker save -o xxx.tar.gz xxx-image:v1.0で自分のクラウド ディスクにアップロードし、使用時にローカル ディスクにダウンロードしてから、 docker load -i xxx.tar.gzすることです。この方法は問題ありませんが、面倒です (パッケージ化、アップロードとダウンロード、ロード時のディレクトリの検索)。2 つ目は、独自の docker イメージ レジストリを作成し、ローカルで構築したイメージの場合は、タグを再設定するだけで、 docker push で完了します。ダウンロードするときは、 docker pull するだけで、すべてコマンドラインで実行できますが、考えただけでも少し不安になります。

ここまで述べたことを踏まえて、独自のイメージ ウェアハウスを構築する方法を見てみましょう。(この記事では、Alibaba Cloud のウェアハウスのみを使用して、独自の名前空間を構築します)。もちろん、自分でクラウド ホストを申請し、プライベート サーバーを構築することもできます。

まず Alibaba Cloud にログインし、次の図に示すように、サービスからコンテナ イメージ サービスの場所を見つけます。

コンテナミラーサービスをクリックすると、以下に示すようにミラーウェアハウス作成インターフェースが表示されます。

作成をクリックして倉庫作成インターフェースに入ります

情報を入力したら、「次へ」をクリックして画像のアップロード方法を選択します。

私の要件は地元の倉庫から構築することですが、地元の倉庫の構築が最も柔軟な方法であると考えています。

イメージの保存場所を作成したら、ローカルで Dockerfile を作成して独自のイメージを構築できます。

Centos 拡張バージョンイメージをビルドする

1. まず、Dockerfileファイルを作成し、次の内容をファイルに入れます。

Centosより
メンテナー terry.king "[email protected]"

# タイムゾーンパラメータ ENV TZ=Asia/Shanghai を定義します
実行 ls -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
# エンコーディングを設定する RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL "zh_CN.UTF-8"

# 基本的な yum パッケージをインストールします。RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel patch net-tools iproute telnet bind-utils wget kde-l10n-Chinese glibc-common

2. Alibaba Cloud Dockerレジストリにログインする

sudo docker login --username=Alibaba Cloud アカウント registry.cn-shenzhen.aliyuncs.com

ログインに使用するユーザー名は Alibaba Cloud アカウントのフルネーム、パスワードはサービスを有効にしたときに設定したパスワードです。

製品コンソールのホームページでログイン パスワードを変更できます。ミラーリポジトリを作成するための2番目のボタンです。左側にレジストリログインパスワードを設定します。

3. イメージをビルドしてレジストリにプッシュする

次のように docker build を実行します。
$ docker tag terrylmay/centos registry.cn-shenzhen.aliyuncs.com/terrylmay/centos:[イメージのバージョン番号]
$ docker push registry.cn-shenzhen.aliyuncs.com/terrylmay/centos:[イメージのバージョン番号]

デフォルトのイメージバージョン番号は最新です

要約する

このようにして、アプリケーション イメージを構築するときに、序文で述べた一連の問題を解決できます。独自のアプリケーション イメージをすばやく構築するのに便利です。

以下もご興味があるかもしれません:
  • CentOS 6.5はSSH経由でログインできるDockerイメージを作成します

<<:  ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

>>:  Windows での MySQL5 グリーン バージョンのインストールの概要 (推奨)

推薦する

HTMLウェブページテーブル構造化マークアップの応用に関する簡単な説明

Web テーブルの構造マークアップについて説明する前に、いくつかの画像を見てみましょう。 HTML ...

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

MySQLデータベースを作成し、中国語の文字をサポートする方法

まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...

Centos7 で Java8 と MySQL をインストールしてデプロイする

通常、Java の学習とプロジェクトのデプロイはローカルで行われますが、実稼働環境は Linux 環...

高品質なコードを書く Web フロントエンド開発実践書の抜粋

(P4) Web 標準は一連の標準で構成されています。中心となる概念は、Web ページの構造、スタイ...

CentOS 7.5 が Varnish キャッシュサーバー機能を導入

1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

MySQLインデックスに関する重要な面接の質問をいくつか共有します

序文インデックスは、データベース内の 1 つ以上の列の値を並べ替え、データベースが効率的にデータを取...

Vue+SpringBoot で Alipay サンドボックス決済を実装するためのサンプルコード

まず、Alipay サンドボックスから一連のものをダウンロードします。多くのブログで取り上げられてお...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

MySQL5.7 マスタースレーブ構成例の分析

MySQL5.7マスタースレーブ構成の実装方法、具体的な内容は次のとおりですインストール環境:マスタ...

Vue プロジェクトにおけるトランジション コンポーネントの適用の概要

​Vue のトランジションは、アニメーション トランジションをカプセル化するコンポーネントです。一般...

CSS3 で less のテキストの長い影を実装する

この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...