Dockerイメージを構築する2つの方法

Dockerイメージを構築する2つの方法

Docker イメージ リポジトリからダウンロードしたイメージがニーズを満たさない場合は、次の 2 つの方法でイメージを変更できます。

  • 既存の画像から画像を更新する
  • ゼロからイメージを構築する

既存のイメージからイメージを更新します。

イメージを更新する前に、イメージを使用してコンテナを作成する必要があります。

ここに画像の説明を挿入

コンテナを入力します:

docker run -t -i db2b37ec6181 /bin/bash

実行中のコンテナで apt-get update コマンドを使用して更新します。操作が完了したら、exit コマンドを入力してコンテナを終了します。
現時点では、ID 0aab061e6f5a のコンテナが、ニーズに応じて変更されたコンテナです。コンテナのコピーは、docker commit コマンドでコミットできます。

ここに画像の説明を挿入

[root@localhost .ssh]# docker commit -m="has update" -a="zyn" 0aab061e6f5a mysql:v2
sha256:3dda266fd05963e816f22e3dec2584589977e040f7202e0421b0151290e4f54b

上記コマンドのパラメータの説明:

-m: 説明情報を送信する
-a: 画像の作成者を指定する
0aab061e6f5a: コンテナID
mysql:v2: 作成するターゲットイメージ名を指定します

docker images コマンドを使用して、新しいイメージ mysql:v2 を表示できます。

ここに画像の説明を挿入

イメージを最初から構築する:

docker build コマンドを使用して、最初から新しいイメージを作成します。これを行うには、Docker にイメージの構築方法を指示する一連の命令を含む Dockerfile ファイルを作成する必要があります。

たとえば、jar パッケージから Docker イメージをビルドします。

まず、Dockerfile ファイルを作成します。

java:8より
メンテナー zyn
jenkins.war をコピー /usr/local/jenkins.war
エクスポーズ8080
エントリポイント ["java", "-jar", "/usr/local/jenkins.war", "--httpPort=8080"]

上記コマンドのパラメータの説明:

java:8はダウンロードしたベースイメージです
MAINTAINERは著者です
COPYはローカルjarをイメージにコピーします
EXPOSEはミラーのオープンインターフェースを宣言します
ENTRYPOINTはdocker run時に指定されるコマンドパラメータであり、RUNやCMDコマンドに似ています。

各命令は画像上に新しいレイヤーを作成します。各命令のプレフィックスは大文字にする必要があります。

次に、jar を Dockerfile と同じディレクトリに配置します。

ここに画像の説明を挿入

最後に、Dockerfile ファイルを使用して、docker build コマンドでイメージをビルドします。

注: Dockerfile の後のドットは、現在のディレクトリがコンテキスト ディレクトリとして使用されることを意味します。イメージを作成すると、コンテキスト ディレクトリ内のファイルがイメージにコピーされます。つまり、jar パッケージがイメージにコピーされます。

[root@localhost zyn]# docker build -t my_jenkins:1.0 -f Dockerfile .
ビルド コンテキストを Docker デーモンに送信しています 67.29 MB
ステップ 1/5: java:8 から
8: library/javaから取得
5040bd298390: プル完了
fce5728aad85: プル完了
76610ec20bf5: プル完了
60170fec2151: プル完了
e98f73de8f0d: プル完了
11f7af24ed9c: プル完了
49e2d6393f32: プル完了
bb9cdec9c7f3: プル完了
ダイジェスト: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
ステータス: Java の新しいイメージをダウンロードしました:8
 ---> d23bdf5b1b1b
ステップ 2/5: MAINTAINER zyn
 ---> d8027d9002f4 で実行中
中間コンテナ d8027d9002f4 を削除しています
 ---> cdd9362868cb
ステップ 3/5: jenkins.war を /usr/local/jenkins.war にコピーする
 ---> 3a276d766222
ステップ4/5: EXPOSE 8080
 ---> 99cf28fb33a8 で実行中
中間コンテナ 99cf28fb33a8 を削除
 ---> de89b785c80d
ステップ 5/5: ENTRYPOINT ["java", "-jar", "/usr/local/jenkins.war","--httpPort=8080"]
 ---> c3a7e16eaa11 で実行中
中間コンテナ c3a7e16eaa11 を削除しています
 ---> 5107b1256f01
5107b1256f01 の構築に成功しました
my_jenkins:1.0 のタグ付けに成功しました

ここに画像の説明を挿入

上記の Docker イメージを起動します。

[root@localhost zyn]# docker run -itd --name jenkins -p 18080:8080 my_jenkins:1.0
5e185bb8e4866b8018f0b3bb7a4845360d3d4efc5bd2509d84fe118929fe52b3

ここに画像の説明を挿入

これで、Docker でイメージをビルドする 2 つの方法についての説明は終了です。Docker でイメージをビルドする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerfileイメージ構築ファイルとDockerの関連コマンドの詳細な紹介
  • Dockerfile を使用して MySQL イメージを構築し、データの初期化と権限設定を実装する詳細な説明
  • Docker ベースイメージをゼロから構築する方法
  • Jenkins が Docker イメージをビルドする例
  • Docker マルチステージイメージ構築の実装
  • Dockerfileを使用してイメージを構築する方法

<<:  ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明

>>:  Webpack パッケージング CSS 背景画像パスの問題に対する完璧なソリューション

推薦する

ピクセルを包括的なブランド体験に変えるヒント

編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...

CSS3 すりガラス効果

すりガラス効果がうまく表現されていれば、ページが非常に鮮やかで立体的に見えるようになります。写真に直...

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

Windows 10 に MySQL 8.0.19 を zip 形式でインストールする詳細なチュートリアル

目次1.ダウンロード後、インストールしたいディレクトリに解凍します。 2. インストールディレクトリ...

MacOS での MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル

この記事では、MacOSでのMySQL 8.0.18のインストールと成功したコマンドライン操作を記録...

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...

MySQL ファントムリードとその排除方法の詳細な説明

目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...

RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、L...

Linux で見つけるためのフレンドリーな代替手段 (fd コマンド)

fd コマンドは、Linux ファイル システムを検索するためのシンプルで簡単な方法を提供します。...

VMWare Linux MySQL 5.7.13 のインストールと設定のチュートリアル

この記事では、参考までにVMWare LinuxにMySQL 5.7.13をインストールするチュート...

MySQL でよく使用されるデータベースとテーブル シャーディング ソリューションの概要

目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...

JavaScript を使って簡単な計算機を書く

効果は以下のとおりです。参考プログラム: <!DOCTYPE html> <htm...

写真のプレビューとアップロード機能を実現するhtml+css+js

はじめに: Web ページを作成するときに、画像をアップロードする必要がある場合がよくあります。画像...

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

ドラッグフォトウォールを実現するネイティブJS

この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...