Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからない点がたくさんあることに気付きました。読んでいくうちに、Fabric イメージを pull するために docker pull を使用し、イメージの名前を変更するために docker tag を使用しているのがわかりました。少し考えてみると、以前使用したことはあったものの、あまりよく理解しておらず、なんとなく使っていたことがわかりました。今では使い方を忘れてしまいました... 1. docker プルイメージソース(通常はDocker Hub)からイメージをプルします。
例えば: $ docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG オプション: # -a 異なるタグを持つすべてのイメージをプルします -a, --all-tags リポジトリ内のタグ付けされたすべてのイメージをダウンロードします # イメージ検証を無視します。デフォルトオプション --disable-content-trust イメージ検証をスキップします (デフォルトは true) 実際に試してみましょう。動作環境はよく使われるUbuntu 16.04です 1.1 通常のプル 実際には、最新バージョンのイメージを直接プルすることができます。デフォルトでは、最新のタグが付いたイメージがプルされます。 例えば: #Java イメージをプルします。タグは最新です $ docker プル java デフォルトタグの使用: 最新 最新: library/java から取得 5040bd298390: プル完了 fce5728aad85: プル完了 76610ec20bf5: プル完了 60170fec2151: プル完了 e98f73de8f0d: プル完了 11f7af24ed9c: プル完了 49e2d6393f32: プル完了 bb9cdec9c7f3: プル完了 ダイジェスト: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d ステータス: java:latest の新しいイメージをダウンロードしました プルが完了したら、すでに持っている画像を表示できます。 $ docker イメージ リポジトリ タグ イメージ ID 作成 サイズ java 最新 d23bdf5b1b1b 20か月前 643MB 1.2 タグ名のプル 上記の出力から、プルされた Java イメージは 1 つだけですが、プル プロセス中に 5040bd298390 や fce5728aad85 など複数のプルが完了したことがわかります。これは、イメージが複数の「レイヤー」で構成でき、そのような「レイヤー」が他のイメージ (フロントエンド コンポーネントやモジュールに少し似ています) によって再利用されて新しいイメージを形成できるためです。 すでにダウンロードされているイメージを含む別のイメージをプルする場合、docker pull はレイヤーを繰り返しプルせずにメタデータのみをプルします。 Docker のイメージ ライブラリはコンテンツ アドレス ストレージを使用し、イメージ ID は、そこに含まれる構成と「レイヤー」を表す SHA256 ダイジェストです。証明してみましょう。タグ名が latest のイメージである java:latest をプルしたので、latest と同じバージョンでタグ名が異なるイメージ (基本的には同じイメージですが、タグ名が異なる) を見つける必要があります。Docker Hub では次の結果が見つかりました。 タグ名 8-jdk のイメージをプルします。 $ docker pull java:8-jdk 8-jdk: library/java から取得 ダイジェスト: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d ステータス: java:8-jdk の新しいイメージをダウンロードしました 明らかに、ここでのプルでは「レイヤー」情報は参照されず、サマリーの sha256 値は、タグ名が latest のイメージとまったく同じです。本質的に、これらはまったく同じ 2 つのイメージであり、同じ「レイヤー」で構成されているため、再度プルする必要はありません。 この時点で、私と同じ疑問が湧くかもしれません。「まったく同じ?」ということは、動作環境には 1 つしかないということですか?では、誰のタグ名を使用すればよいのでしょうか?次の出力を見てみましょう。 $ docker イメージ リポジトリ タグ イメージ ID 作成 サイズ java 8-jdk d23bdf5b1b1b 20か月前 643MB java 最新 d23bdf5b1b1b 20か月前 643MB すべてのイメージを表示すると、8-jdk と latest というタグ名のイメージがリストされていることがはっきりとわかります。java:8-jdk と java:latest は基本的に同じイメージであるため、イメージ ID は同じですが、タグが異なるだけです。 イメージはまったく同じなので、その「レイヤー」は一度だけ保存され、追加のディスク領域を消費しません。つまり、オペレーティング環境には Java イメージが 1 つだけ存在し、そのイメージに異なるタグを付けることもできます。 イメージ、レイヤー、コンテンツアドレス指定リポジトリの詳細については、まだオープンされていない新しいピットにアクセスしてください。Docker イメージ、レイヤー、ストレージ ドライバーの詳細な分析 1.3 概要プル 上記の2つの方法で画像を取得すると、sha256が取得されます。
イメージを取得する方法をまとめてみましょう。 $ docker pull java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d: library/java から取得 ダイジェスト: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d ステータス: java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d のイメージは最新です この概要の画像はすでに最新のものであるため、取得する必要はありません。 $ docker イメージ リポジトリ タグ イメージ ID 作成 サイズ java 8-jdk d23bdf5b1b1b 20か月前 643MB java 最新 d23bdf5b1b1b 20か月前 643MB ミラーリストは変更されません。 ここで、Summary は Dockerfile の FROM で使用できるという知識ポイントを示します。
この参照方法では、特定のサマリーのため、イメージは特定のバージョンに固定され、更新されません。別のバージョンを使用する必要がある場合は、サマリーの内容を変更する必要があります。 1.4 他のレジストリからプルする 繰り返しになりますが、デフォルトでは、docker pull は Docker Hub からイメージをプルします。もちろん、他のレジストリからイメージをプルするように設定することもできます。
登録センターの URL の前に http:// または https:// を追加する必要はありません。 1.5 同じ画像ライブラリから複数の画像を一度に取得する 同じイメージ ライブラリ内のすべてのイメージをプルするには、docker pull -a を使用します。 1.6 プルをキャンセル プルアクションをキャンセルするには、操作インターフェイスで直接 CTRL+c を押してプルプロセスを強制終了します。 2. dockerタグソース画像に新しいタグを作成する
イメージ名は、library/java のように、スラッシュで区切られた各名前コンポーネントで構成されます。 名前とタグを区切るには、library/java:8-jdk のようにコロンを使用します。 イメージ名の前にプレフィックスを追加して、イメージソースが他のレジストリまたはプライベートレジストリであることを示すこともできます。
2.1 名前で参照される画像にタグを付ける
読者は、docker tag java java:bynameとdocker tag java lib/java:bynameの相違点と類似点を確認することができます。 2.2 IDで参照される画像にタグを付ける
2.3 名前とタグで参照される画像にタグを付ける
2.4 プライベートレジストリ内のイメージのタグ付け イメージをプライベート レジストリにアップロードするには、イメージの名前を変更する必要があります。ルールは次のとおりです。
Docker pull と Docker tag はよく使われるコマンドです。使い方は簡単ですが、コツがたくさんあります。読者は自分で練習して試してみることができます。 追記 実は、私は長い間Dockerに触れてきました。この部分を書こうと思ったきっかけは何ですか? 私が文章を書こうと思った当初の目的は、知識を蓄積することでした。上司からは常に、技術を迅速に応用して価値を生み出すことを求められてきました。その結果、理論的な研究や基礎原理、基本的なコマンドの本当の意味さえもわからず、ただ使えるようになり、使い方もわかるようになっただけかもしれません。 自動車学校では生徒に運転技術を教える(あるいは教えない)が、自動車の構成(構造)や動作メカニズム(基本原理)は決して教えないのと同じです。手でギアを変えたりハンドルを回したりでき、足でクラッチ、アクセル、ブレーキを踏むことができれば、それで十分ではないでしょうか? 運転できます。 では、なぜ沈殿するのでしょうか? まず、誰かがあなたに何らかの命令や原則について尋ねたとき、あなたは躊躇し、答えることができません。なぜなら、あなたは原則やその根底にある原理は言うまでもなく、指先の筋肉を通して指示を記憶しているだけだからです。 次に、他の経験から類推して学びました。最初はフロントエンドの初心者でしたが、その後 Spring Boot アーキテクチャを使用して Java アプリケーションを作成し、現在は Linux コマンド (シェル)、Docker、Go を使用してブロックチェーン フレームワーク HyperLedger Fabric を本番環境に適用することを学んでいます。大きな飛躍のように思えますが、それでも人とマシンのコミュニケーションという同じ分野です。私が学んだのは、さまざまな機械語を話す機械とコミュニケーションをとるために、さまざまな言語を使うことでした。私は、読み書きができる、機械の国に住む外国人のような存在でした。機械の世界で実践を続ける中で、私は HTML、CSS、JavaScript に対する最初の啓蒙から徐々に離れつつあります。建国記念日の前夜なので、とりあえずここに書いておきます。水を吸いすぎて日光が足りないもやしのような感じです。どんどん背が高くなってはいますが、背が高くなるほど細くなります。根は十分に茂っておらず、首は十分に強くなく、曲がったり折れたりしやすくなります。私たちは常に自分自身を奮い立たせ、初心を貫き、義務を忘れず、前線からより多くの栄養のある内容を吸収し、自分自身を強化する必要があります。 上記の記事 Docker の pull イメージとタグ操作 pull | tag は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
このチュートリアルの動作環境: Windows 7 システム、MySQL 8 バージョン、Dell ...
1. HTML部分 <Col span="2">ファイルをアップロー...
目次概要ハッシュプロパティホストプロパティホスト名属性Href属性起源のプロパティユーザー名とパスワ...
Docker 学習https://www.cnblogs.com/poloyy/p/15257059...
目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...
目次序文1. グローバル統合オーバーライドを使用する2. .vueファイルを変更する3. コンポーネ...
序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...
EXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情報を提供します...
binlog は、MySQL のすべての DML 操作を記録するバイナリ ログ ファイルです。 bi...
輸入:プロジェクトの要件により、同じコードの一部をコンポーネントにカプセル化し、必要な場所にインポー...
推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...
商用データベースの場合、データベースのアップグレードは優先度が高く、バージョンアップのロードマップ、...
Apache.POI の HSSFWorkbook を使用して Excel にエクスポートします。具...
目次序文keep-avlive フック関数keep-avliveはどのコンポーネントをキャッシュする...
目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...