コンテナから Docker イメージを生成する方法

Kontenakara Docker Imejiwo Sheng Chengsuru Fang Fa



Docker イメージは Docker プラットフォームの主要コンポーネントの 1 つであり、コンテナー内で Docker アプリケーションを構築、デプロイ、配布する際に重要な役割を果たします。 Docker イメージは、アプリケーションをコンテナ化してデプロイする方法をコンテナに指示するコンテナのテンプレートまたはスナップショットです。アプリケーションをコンテナ化するために、Docker Hub レジストリで数千の公式イメージを利用できます。ただし、ユーザーは、Dockerfile および Docker compose サービスを使用して、要件に応じてこれらのイメージを作成することもできます。

場合によっては、ユーザーがコンテナーや構成設定を変更することがありますが、これらの変更は Docker イメージにコミットされません。コンテナーの変更をイメージに保存するか、コンテナーのバックアップを作成するには、ユーザーはコンテナーから新しいイメージを構築する必要があります。その特定の目的のために、「 ドッカーコミット ”コマンドが利用可能です。

このガイドでは次のことを説明します。







「docker commit」コマンドとは何ですか?

ドッカーコミット 」コマンドは、コンテナーの変更と設定を Docker イメージにコミットするために使用される Docker のコマンド ライン ユーティリティの 1 つです。また、ユーザーが Docker コンテナを削除して Docker を整理する必要がある場合に、コンテナのバックアップを作成するためにも使用されます。ただし、 docker commit コマンドには、コンテナー ファイルと Docker イメージ内の構成変更のみが含まれ、コンテナーにマウントされているボリュームのデータは保存されません。



構文



ドッカーコミット < オプション > < コンテナ名 / コンテナID > < 画像名 >

オプション





次のオプションは「」とともに使用されます。 ドッカーコミット 」コマンドを使用して、さまざまな方法でコンテナからイメージを作成します。

< 強い > オプション 強い > >
< >< 強い > 説明 強い > >
tr >
< tr >
< >< 強い > -あ、 - 著者 強い > >
< > コンテナの変更をコミットしている作成者の名前を指定するために使用されます。 画像。 >
tr >
< tr >
< >< 強い > -c、 - 変化 強い > >
< > 変更をコミットするための Dockerfile 命令を追加します 画像。 >
tr >
< tr >
< >< 強い > -m、--メッセージ 強い > >
< > コミットメッセージまたはコメントを追加する その間 コンテナからイメージを生成します。 >
tr >
< tr >
< >< 強い > -p、--一時停止 強い > >
< > コンテナーのコミット中、デフォルトでは、コンテナーは停止または一時停止されます。コンテナの一時停止を停止するには、「 < 強い > --一時停止= 間違い 強い > 」オプションが使用されます。

Docker コンテナからイメージを生成するにはどうすればよいですか?

ユーザーがコンテナ シェルを通じて直接、または非対話的に Docker コンテナに変更を加えた場合、これらの変更によってコンテナのスナップショットは変更されません。変更を保存またはコミットするには、ユーザーは「」を使用してコンテナから新しいイメージを生成できます。 ドッカーコミット ' 指示。これは、コンテナーのバックアップを作成する場合にも役立ちます。



Docker コンテナを介してイメージを作成するには、次の図を参照してください。

ステップ 1: Dockerfile を作成する

まず、「」という名前の新しいファイルを作成します。 Dockerfile 」を使用し、ファイル名にファイル拡張子を追加しないでください。その後、以下のコマンドを「Dockerfile」に貼り付けます。

nginxから:最新

インデックス.htmlをコピー / ユーザー / 共有 / nginx / html / インデックス.html

エントリーポイント [ 「nginx」 「-g」 「デーモンがオフになっています。」 ]

ここで、「 から ” コマンドは、コンテナーのベース イメージを定義するために使用されます。 コピー ” コマンドはプログラム ファイルをコンテナ指定のパスにコピーし、” エントリーポイント 」コマンドは、コンテナーのデフォルトの実行可能ファイルを設定します。

ステップ2: プログラムファイルを作成する

次に、別のファイルを作成します。 インデックス.html 」を開き、次の HTML コードをファイルに追加します。

< html >

< >

< スタイル >

{

背景色:rgb ( 9 4 4 ) ;

}

h1 {

色:rgb ( 221 219 226 ) ;

フォント スタイル: イタリック体。

}

スタイル >

>

< >

< h1 > これは最初の HTML ページです h1 >

>

html >

ステップ 3: コンテナのスナップショットを構築する

次に、以下のコマンドを使用して、Dockerfile からコンテナーのスナップショットを生成します。ここで、「 -t 」オプションは、スナップショットの名前を設定するために使用されます。

ドッカービルド -t デモ画像 。

ステップ 4: スナップショットを実行してコンテナを起動する

次に、コンテナイメージを実行してコンテナを起動します。この目的のために、「 docker run <スナップショット名> ' 指示:

ドッカーラン -p 80 : 80 - 名前 デモ続き -d デモ画像

上記のコマンドでは、「 -p ” オプションはコンテナの公開ポートを設定します。” -名前 ” はコンテナ名を指定し、” -d 」オプションはコンテナをデタッチモードで実行します。

コンテナーを実行した後、「」に移動します。 http://localhost:80 ” URL を参照し、コンテナ化されたプログラムが公開ポートでアクセス可能かどうかを確認します。

上記の出力は、コンテナーが正常に起動されたことを示しています。

ステップ 5: 新しいプログラム ファイルを作成する

場合によっては、ユーザーは実行中のアプリケーションに追加の機能を追加する必要がある場合があります。この目的のために、ユーザーはプログラム ファイルに変更を加えたり、アプリケーションにファイルを追加したりする必要がある場合があります。

この目的のために、「」という名前の別のファイルを作成しましょう。 インデックス1.html 」を選択し、次のコードをファイルに貼り付けます。

< html >

< >

< スタイル >

{

背景色:rgb ( 106 103 103 ) ;

}

h1 {

色:rgb ( 221 219 226 ) ;

フォント スタイル: イタリック体。

}

スタイル >

>

< >

< h1 > これは 2 番目の HTML ページです h1 >

>

html >

ステップ 6: 新しいプログラム ファイルをコンテナにコピーする

新しいファイルをコンテナ パスにコピーするには、「 docker cp <ファイル名> <続き名>:<コンテナの宛先パス> ' 指示。ここでは、「」をコピーしました。 インデックス1.html ” ファイルを” デモ続き ” コンテナの指定されたパス:

港湾労働者 CP Index1.html デモの続き: / ユーザー / 共有 / nginx / html / インデックス1.html

ステップ 7: 新しいイメージでコンテナーの変更をコミットする

コンテナーに変更を加えた後、ユーザーはその変更を新しい Docker イメージにコミットする必要があります。このイメージは Docker コンテナを通じて生成されます。この目的のために、「」を実行します。 docker commit <続き名> <イメージ名> ' 指示:

docker commit デモ-cont new-demo-img

注記: 「」を通じてイメージを生成する前に、Docker コンテナに変更を加えます。 ドッカーコミット 」コマンドは強制ではありません。ユーザーは、「docker commit」を直接使用してイメージを作成し、コンテナーのバックアップを生成できます。

ステップ 8: 確認

イメージがコンテナ経由で作成されたかどうかを確認するには、「」を利用して Docker イメージを一覧表示します。 ドッカーイメージ ' 指示:

ドッカーイメージ

以下の出力は、「」が正常に生成されたことを示しています。 新しいデモ画像 ' から ' デモ続き ' 容器:

注記: Docker イメージを Docker ハブ レジストリにプッシュするには、ユーザーは「」を使用してイメージにタグを付けることもできます。 ドッカータグ ' 指示:

ドッカータグ < イメージ名 > < リポジトリ名 >>< イメージ名 > : < 鬼ごっこ / バージョン >

ステップ 9: 古いコンテナを削除する

次に、古いコンテナを削除します。このためには、まず、「」を使用して Docker コンテナを停止します。 docker stop <コンテナ名> ' 指示:

docker stop デモ続き

コンテナを停止した後、「 docker rm <コンテナ名/コンテナID> 」コマンドを使用して Docker から削除します。

港湾労働者 rm デモ続き

ステップ 10: 新しいコミットされたイメージから新しいコンテナを実行する

ここで、「」を通じて新しく生成されたイメージを使用して新しいインスタンスまたは Docker コンテナを起動します。 ドッカーラン ' 指示:

ドッカーラン -p 80 : 80 - 名前 デモ続き -d 新しいデモ画像

次に、「」に移動します。 ローカルホスト:80 」をポートして、HTML アプリケーションが効果的に実行されているかどうかを確認します。

新しくコピーしたファイルを確認するには、「 インデックス1.html 」を活用してください。 http://localhost/index1.html ” URL:

上記の出力は、コミットされた変更が「」に正常に保存されたことを示しています。 新しいデモ画像 Docker イメージを作成し、変更したコンテナを効果的に実行しました。

画像の作成者を設定するにはどうすればよいですか?

ドッカーコミット 」 コマンドは、新しい変更の作成者、コミット メッセージなど、コミットされた変更とともに追加情報を追加するためのさまざまなオプションもサポートしています。

新しい変更をコミットしているイメージの作成者を指定するには、指定された手順を実行します。

ステップ 1: 画像の作成者を設定する

変更を加えている画像の作成者を指定するには、「 -a ' または ' -著者 ” オプションと” ドッカーコミット ' 指示:

ドッカーコミット -a ラフィア デモ-CONT 新しいデモ-IMG

ステップ 2: 画像を検査する

画像の作成者が設定されているかどうかを確認するには、「 docker Inspection <イメージ名> ' 指示:

docker Inspection new-demo-img

出力は、画像の作成者を効果的に設定したことを示しています。

画像のコミットメッセージを設定するにはどうすればよいですか?

コミットの変更とともにコミットメッセージを設定するには、「 -m ' オプション。説明のために、以下の手順に従ってください。

ステップ 1: イメージのコミットメッセージを設定する

コミットされた変更とともにメッセージを設定するには、「 docker commit -m <“メッセージ”> <続き名> <画像名> ' 指示:

ドッカーコミット -a ラフィア -m 「このイメージはコンテナによって生成されます」 デモ-続き 新しいデモ-イメージ

ステップ 2: 画像を検査する

コミットメッセージを確認するには、「 docker Inspection <イメージ名> ' 指示:

docker Inspection new-demo-img

下 ' コメント ” キーを押すと、ユーザーは以下に示すようなコミット メッセージを確認できます。

コンテナから Docker イメージを生成する方法は以上です。

結論

コンテナーから Docker イメージを生成するには、まず Docker コンテナーに変更を加えます。その後は「」を活用してください。 docker commit <続き名> <イメージ名> 」コマンドを使用してコンテナからイメージを生成します。次に、古いコンテナを削除し、新しく生成されたイメージを使用して新しいインスタンスを開始します。ユーザーは、「」を使用して画像の作成者名を設定することもできます。 -a ” オプションを選択し、” を使用してメッセージをコミットします。 -m ' オプション。このブログでは、Docker コンテナからイメージを生成する方法を説明しました。