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 グリーン バージョンのインストールの概要 (推奨)

推薦する

MySQL全文検索の使用例

目次1. 環境整備2. データの準備3. ショーを始める4. 単語分割エンジン要約する参考文献1. ...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

VMware kali仮想マシン環境の設定方法

1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...

mysql5.7.19 解凍版の詳細なインストール チュートリアル (純粋なクラックされた中国語版 SQLYog を使用)

Mysql5.7.19バージョンは今年リリースされた新しいバージョンです。最近のMySQLのバージ...

Linux で複数のファイルの名前を一括で変更する方法

Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のフ...

nginx-naxsi ホワイトリストルールの詳細な説明

ホワイトリストルールの構文:基本ルール wl:ID [否定] [mz:[$URL:target_ur...

Ubuntu 20.04 ファイアウォール設定の簡単なチュートリアル (初心者)

序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...

Alipay の Java 決済インターフェースを開発するための詳細な手順

目次最初のステップステップ2ステップ3ステップ4 Alipay 決済インターフェースへの接続に関する...

MySQLセグメンテーション関数substring()の具体的な使用法

MySQL には、主に left()、right()、substring()、substring_i...

CentOS サーバーの時間を北京時間に変更する方法

1. VPSとCentOSシステムを購入しましたが、サーバーの時間が北京時間と一致せず、時差があるこ...

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...

CSS3 で画像ドロワー効果を実装するためのサンプル コード

いつものように、まずは画像効果を投稿しましょう: このエフェクトの原理は非常にシンプルです。CSS3...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

vue3とvue2の利点の比較

目次利点1: diffアルゴリズムの最適化利点2: ホイスト静的静的リフティング利点3: cache...

docker-compose を使用して mongodb と mysql を構築する詳細なプロセス

docker-compose で mongodb と mysql を構築する詳細な方法を見てみましょ...