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

推薦する

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

MySQLコンテナ間のレプリケーション構成例の詳細な説明

背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

docker で PostgreSQL データベースをインストールして永続化する方法

Dockerのインストール手順をスキップする1. postgresqlイメージを取得する docke...

Linux で Bash コマンド プロンプトをカスタマイズする方法

序文ご存知のとおり、bash (Bourne-Gain Shell) は、ほとんどの Linux デ...

Redission-tomcatは、単一マシンから複数マシンへの展開を迅速に実装します。

序文一部のプロジェクトの初期段階では、シンプルさとスピードのために、開発と展開は単一のマシンで行われ...

HTMLは角丸四角形を簡単に実装します

質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...

Linux システムで MySQL の文字セットを UTF8 に変更する手順

目次1. データベース内の MySQL ステータスを確認します。 2. 設定ファイルを変更します。 ...

HTMLはテキスト行のインターセプトの実装原理とコードを超えています

複数行を超えるテキストをインターセプトするための HTML コードは次のとおりです。 HTML:コー...

初心者向けの MySQL のインストール方法 (効果が実証済み)

1. ソフトウェアのダウンロードMySQL のダウンロードとインストール:公式サイトのダウンロード...

jsはFileReaderを使用してローカルファイルまたはBLOBを読み取ります

目次FileReaderはローカルファイルまたはBLOBを読み取ります1. FileReaderの使...

Vueは視覚的なドラッグページエディタを実装します

目次ドラッグアンドドロップの実装ドラッグイベントドラッグして開始リリースゾーンでの移動境界処理、角度...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

Javascript の基礎: 演算子とフロー制御の詳細な説明

目次1. オペレーター1.1 算術演算子1.2 インクリメント演算子とデクリメント演算子1.3 比較...

Docker コンテナで ASP.NET Core を実行する手順

最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...