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実装

推薦する

JavaScript で支払いの 10 秒カウントダウンを実現

この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...

商品クエリ機能を実現するJavaScript

この記事の例では、商品検索機能を実現するためのJavaScriptの具体的なコードを参考までに共有し...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

ウェブページからテキスト透かしを削除する2つの簡単な方法

<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...

VueのSSRサーバーサイドレンダリング例の詳細な説明

サーバーサイドレンダリング (SSR) を使用する理由検索エンジンのクローラーが完全にレンダリングさ...

Nacos で MySQL8 を設定する方法

1. MySQLデータベースnacos_configを作成する2. データベース nacos_con...

Vue ページに img 画像を導入する方法

HTMLを学ぶとき、画像タグ<img>は画像を導入します <img src=&qu...

MySQL パーティションテーブルのベストプラクティスガイド

序文:パーティショニングはテーブル設計パターンです。一般的に、テーブル パーティショニングとは、条件...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更

このブログは、MySQL8.0.15 を正常にインストールしたことを思い出すために書きました。以前は...

MySQL マルチテーブルクエリの詳細な説明

いつも、気づかないうちに時間というのは驚くほど早く過ぎていきます。小暑が過ぎ、中暑に突入しました。太...

Vue3 シングルファイルコンポーネントのスタイル機能の詳細な説明

目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...

Windows DNS サーバーに「ワームレベル」の脆弱性が露呈、17 年間存在

脆弱性の紹介SigRed の脆弱性はワーム化可能であるため非常に危険です。つまり、ユーザーの介入なし...

VueのTodoListケースの詳しい説明

<テンプレート> <div id="ルート"> <...

React Native環境のインストールプロセス

react-native インストールプロセス1.npx react-native init Awe...