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

推薦する

Axios を使用して Vue2 がリクエストを開始する詳細なプロセス記録

目次序文Axiosのインストールと設定シンプルなGETリクエストを開始するPOSTリクエストを行うシ...

10分でDockerを使ったマイクロサービスのデプロイ方法を学ぶ

Docker は 2013 年のリリース以来、広く注目され、ソフトウェア業界を変える可能性を秘めてい...

CocosCreator クラシック エントリー プロジェクト flappybird

目次開発環境ゲームエンジンのコンセプトCocos Creatorについてプロジェクト構造コード編集環...

SSL を実装するために nginx を設定する方法の例

環境説明サーバーシステム: Ubuntu 18.04 64ビットnginx: 1.14この記事では主...

IE ラベル LI テキスト折り返し問題について

私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメー...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

CentOS7 で yum を使用して PostgreSQL と PostGIS をインストールする方法

1. yumソースを更新するCentOS7 のデフォルトの yum リポジトリの PostgreSQ...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...

詳細なハードウェア情報を取得するための Linux のいくつかのコマンドの詳細な説明

Linux システム、特にサーバー システムでは、デバイスのハードウェア情報を表示する必要がよくあり...

ドッカー専用倉庫港湾建設プロセス

1. 準備1.1 港ダウンロードハーバーダウンロードアドレス:リンクリンクの説明を追加し、必要なバー...

音声キューイングシステムを実装するためのJavaScript

目次導入主な特徴エフェクト表示キーコード導入音声キューイングシステムは、銀行、レストラン、病院などの...

Linux マルチスレッドにおけるフォークとミューテックス ロック プロセスの例

目次質問: 1. 最初の試み2. 合理的な分析3. 問題解決(1) pthread_join()の使...