Dockerイメージの作成、保存、読み込み方法

Dockerイメージの作成、保存、読み込み方法

イメージを作成する方法は 3 つあります。既存のイメージに基づいてコンテナを作成する、ローカル テンプレートからインポートする、Dockerfile に基づいて作成する、です。このブログ投稿では、最初の 2 つについて説明します。

既存のイメージに基づいてコンテナを作成する

方法は docker commit コマンドを使用するもので、コマンドの形式は次のとおりです。

 docker commit [オプション] コンテナ [リポジトリ[:タグ]]

主なパラメータ オプションは次のとおりです。

  • -a, --author="" 著者情報
  • -m, --message="" コミットメッセージ
  • -p, --pause=true 送信するとコンテナが一時停止します

たとえば、まず bash を実行する ubuntu コンテナを作成します。

docker run –it ubuntu /bin/bash

root@d8990fec2141:/# タッチテスト

root@d8990fec2141:/# 終了

次に、作成したコンテナに基づいて新しいイメージを送信します。送信にはコンテナ ID が必要です。

 docker commit –m “test” –a “zmc” d8990fec2141 テストイメージ

成功した場合、新しいイメージの長い ID 番号が返され、既存のイメージをローカルで確認できます。

Docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

testimage 最新 baea98d5a437 約 1 分前 188.3 MB

…

3 行目は、作成したばかりの画像です。

PS: このコンテナを使用して作成されたイメージ ID は、このコンテナのイメージ ID と異なるため、同じイメージではないことがわかります。

ローカルテンプレートに基づいてインポート

OpenVZ が提供するテンプレートなどを使用して、オペレーティング システムのテンプレート ファイルからイメージをインポートすることもできます。OPENVZ のダウンロード テンプレートは、http://openvz.org/Download/template/precreated にあります。

Ubuntu 14.04 のテンプレートを使用してみました:

http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz をダウンロードしてください

ダウンロード後、インポートできます:

sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

コマンドは 2 つだけですが、非常に明白なので説明しません。成功した場合、テンプレートに基づいて作成された画像の長いIDを返します。

sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

ab80404d13d580965b9919b640169ccb585ea7884e6aa9de1ec043075c65fe35

次に、ローカルイメージを表示します。

Docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

ubuntu 14.04 ab80404d13d5 56 秒前 215.4 MB

testimage 最新 baea98d5a437 29 分前 188.3 MB

……。

実際、テンプレートは 75M しかありませんが、作成された画像は小さくないことがわかります。

画像の保存と読み込み

docker save コマンドと docker コマンドを使用して、イメージを保存および読み込むことができます。

画像を保存する

イメージをローカル ファイルに保存する場合は、docker save コマンドを使用できます。たとえば、作成したローカルの testimage:lastest ファイルをイメージ ファイル testimage.tar として保存します。

Docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

testimage 最新 baea98d5a437 25 分前 188.3 MB

ubuntu 最新 fa81ed084842 3日前 188.3 MB

……。

docker save –o /data/testimage.tar testimage:latest

上記6行目はコードを保存するものです。このとき、/dataの下にtestimage.tarファイルがあります。このとき、ローカルイメージをrmiしてロードしてみます。

画像を読み込んでいます

画像削除後のステータス:

ubuntu@VM–223–238–ubuntu:/data$ docker rmi baea98d5a437

タグなし: testimage:latest

削除済み: baea98d5a4371a6abf9efc8c53a54a6fc5befd167bf91ce9fd4a28a6d1b7dc5b

ubuntu@VM–223–238–ubuntu:/data$ docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

ubuntu 14.04 ab80404d13d5 5分前 215.4 MB

次に、画像を読み込みます。

docker load --input testimage.tar

Docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

ubuntu 14.04 ab80404d13d5 6分前 215.4 MB

testimage 最新 baea98d5a437 35 分前 188.3 MB

最初の行は画像を読み込むもので、次のように簡略化できます。

docker load --input testimage.tar

Docker イメージ

リポジトリ タグ イメージ ID 作成 仮想サイズ

ubuntu 14.04 ab80404d13d5 6分前 215.4 MB

testimage 最新 baea98d5a437 35 分前 188.3 MB

読み込み操作により、画像と関連するメタデータ情報 (タグなどを含む) がインポートされます。

画像アップロード

最後に、イメージのアップロードについて説明します。イメージの管理方法は git と非常に似ています。docker push コマンドを使用して、ローカルイメージをウェアハウスにアップロードできます。デフォルトでは、DockerHub 公式ウェアハウス (ログインが必要) にアップロードされます。コマンドの形式は次のとおりです。

 docker push 名前[:タグ]

アップロードする前に、通常は画像に自分の名前(著者情報)のタグを追加します。

docker タグ testimage:lastest zmc/testimage:lastest

docker pushzmc/testimage:最新

アップロード後に区別するのに役立ちます。

運用保守チーム、開発チーム、研究室のいずれであっても、ニーズに合った環境やシステムイメージを保存し、迅速な展開を実現するために、独自の Docker リポジトリを持つことは必要だと思います。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker イメージの作成、イメージの変更やアップロードの方法などについて詳しく紹介します。
  • Dockerイメージを作成する2つの方法の詳細な説明
  • 最小限の Docker イメージを作成するための Node.js の詳細な説明
  • コミットコマンドを使ってイメージを作成するDocker学習の詳細な説明
  • Web プロジェクト用の Docker イメージを作成する
  • DockerはDockerfileを使用してイメージを作成します
  • Dockerでイメージを作成するためのDockerfile命令の詳細な説明

<<:  MySQL におけるユニーク制約と NULL の詳細な説明

>>:  カレンダーウィジェットのネイティブJS実装

推薦する

MySQLリモートアクセスの設定方法をステップバイステップで説明します

序文MySQL データベースを使用する場合、クライアントはデータベース サーバーにリクエストを送信す...

CSS でより美しいリンクプロンプト効果をカスタマイズする方法

提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...

Nodejs エラー処理プロセス記録

この記事では、接続エラー ECONNREFUSED を例に、Node.js がエラーを処理するプロセ...

Javascriptの基本を詳しく説明

目次変数データ型拡張ポイント要約する変数基本的な構文 var age=10; //ageという変数を...

JavaScript コードベースをよりクリーンにする 5 つの方法

目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...

行間隔が広い場合の解決策(IE では 5 ピクセル多い)

コードをコピーコードは次のとおりです。 li {幅:300px; 高さ:23px; 行の高さ:24p...

vue3.0 のウォッチ リスナーの例の詳細な説明

目次序文リスナーと計算プロパティの違いvue3 で watch を使用するにはどうすればいいですか?...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

React NativeプロジェクトでLottieアニメーションを使用する方法

Lottie は、Airbnb が開発した iOS、Android、React Native 向けの...

CSS で放射状グラデーションを使用してカード効果を実現する

数日前、同僚がポイントモールプロジェクトを受け取りました。このプロジェクトには、カードやクーポンをギ...

MySQL 5.7.21 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...

MySQL で主キーと ROWID を使用する際の落とし穴の概要

序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...

Google Recaptcha 認証を使用した Vue 実装例

最近のプロジェクトでは、Google ロボット認証を使用する必要があります。これには VPN が必要...

mysql 5.6.23 winx64.zip インストール詳細チュートリアル

WindowsにMySQLの圧縮バージョンをインストールする方法の詳細については、以下を参照してくだ...

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...