docker scout stream コマンドを使ってストリームを管理する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker scout stream コマンドを使用してストリームを管理する方法を学びます。ストリームは基本的にイメージのコレクションであり、これらとのやり取り方法を理解することは、Docker イメージを効果的に整理および管理するために重要です。

まず、既存のストリームを一覧表示して、利用可能なイメージコレクションを確認する方法を学びます。次に、特定のストリームに含まれる具体的なイメージを一覧表示する方法を探ります。最後に、特定のプラットフォーム用のストリームにイメージを記録する方法を学び、イメージをそれぞれのストリームとプラットフォームに関連付けることができるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555216{{"docker scout stream コマンドを使ってストリームを管理する方法"}} docker/tag -.-> lab-555216{{"docker scout stream コマンドを使ってストリームを管理する方法"}} docker/images -.-> lab-555216{{"docker scout stream コマンドを使ってストリームを管理する方法"}} end

既存のストリームを一覧表示する

このステップでは、Docker 内の既存のストリームを一覧表示する方法を学びます。ストリームは基本的にイメージのリポジトリまたはコレクションです。ストリームを一覧表示することで、利用可能なイメージコレクションを確認できます。

まず、docker images コマンドを使用して、利用可能なすべてのイメージを一覧表示しましょう。このコマンドは、現在システムにダウンロードされているイメージを表示します。

docker images

取得したイメージによって具体的な内容は異なりますが、以下のような出力が表示されるはずです。

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world   latest    d2c94e258dcb   2 months ago   13.3kB

出力の REPOSITORY 列はストリーム名を表します。TAG 列はそのストリーム内の特定のバージョンを表します。

一意のストリーム名(リポジトリ)のみを一覧表示するには、docker images の出力を処理することができます。これを実現するために、awksort などのコマンドラインツールを使用できます。

docker images | awk '{print $1}' | sort -u

このコマンドを分解してみましょう。

  • docker images: このコマンドはすべてのイメージを一覧表示します。
  • |: これはパイプで、左側のコマンドの出力を右側のコマンドの入力として送ります。
  • awk '{print $1}': awk は強力なテキスト処理ツールです。{print $1}awk に入力の各行の最初の列を出力するよう指示します。docker images の出力では、最初の列が REPOSITORY です。
  • |: awk の出力を sort に送るための別のパイプです。
  • sort -u: sort は入力行をアルファベット順に並べます。-u は一意(unique)を意味し、重複する行を削除します。これにより、一意のリポジトリ名のリスト、つまりストリームのリストが得られます。

出力は、以下のような一意のリポジトリ名のリストになります。

REPOSITORY
hello-world
ubuntu

このコマンドにより、システムにイメージがダウンロードされている既存のストリーム(リポジトリ)を効果的に一覧表示できます。

特定のストリームのイメージを一覧表示する

前のステップでは、既存のすべてのストリーム(リポジトリ)を一覧表示する方法を学びました。今回は、特定のストリームに属するイメージを一覧表示する方法を学びます。特定のイメージの異なるバージョン(タグ)を確認したい場合に便利です。

特定のストリームのイメージを一覧表示するには、docker images コマンドの後にストリーム名を指定します。たとえば、ubuntu ストリーム内のすべてのイメージを一覧表示するには、次のようにします。

docker images ubuntu

このコマンドを実行する前に、ubuntu イメージがシステムに利用可能か確認しましょう。利用できない場合は、docker pull コマンドを使用して取得できます。

docker pull ubuntu

イメージがダウンロードされていることを示す出力が表示されるはずです。

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

これで ubuntu イメージが利用可能になったので、ubuntu ストリーム内のイメージを一覧表示できます。

docker images ubuntu

出力には、ubuntu ストリームに属するイメージが表示されます。latest タグのみを取得した場合、次のような表示がされます。

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

ubuntu の他のタグもダウンロードしている場合、それらもここに一覧表示されます。

前のステップで docker images の出力で確認した他のストリーム名に置き換えることで、特定のストリーム内のイメージを一覧表示できます。たとえば、hello-world ストリーム内のイメージを一覧表示するには、次のようにします。

docker images hello-world

このコマンドにより、hello-world ストリームで利用可能なイメージが表示されます。

特定のプラットフォーム用のストリームにイメージを登録する

このステップでは、特定のプラットフォーム用のストリームにイメージを「登録」する方法を学びます。Docker の用語では、これは通常、既存のイメージに、目的のストリームと必要に応じてプラットフォーム情報を含む新しい名前を付けることで行われます。イメージにタグを付けることは、基本的に既存のイメージレイヤーへの新しいポインタを作成することであり、同じイメージを異なる名前とタグで参照できるようになります。

イメージにタグを付ける基本的なコマンドは docker tag です。構文は次の通りです。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG]: これは、タグを付けたい既存のイメージの名前とオプションのタグです。
  • TARGET_IMAGE[:TAG]: これは、イメージに割り当てたい新しい名前とオプションのタグです。TARGET_IMAGE の部分はストリーム名を表します。

前のステップで取得した ubuntu イメージを使用しましょう。このイメージに新しいストリーム名、たとえば myubuntu を付けます。

まず、既存の ubuntu イメージとその ID を確認しましょう。

docker images ubuntu

IMAGE ID を確認しながら、次のような出力が表示されます。

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

次に、ubuntu:latest イメージに新しいストリーム名 myubuntu とタグ v1.0 を付けましょう。

docker tag ubuntu:latest myubuntu:v1.0

このコマンドが成功すると、あまり出力は表示されません。単に新しいタグが作成されます。

次に、再度イメージを一覧表示して、新しくタグ付けされたイメージを確認しましょう。

docker images

これで、元の ubuntu:latest イメージと新しい myubuntu:v1.0 イメージの両方が表示され、両方が同じ IMAGE ID を指しているはずです。

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
myubuntu     v1.0      d621e9f15c2f   2 weeks ago    72.8MB
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world  latest    d2c94e258dcb   2 months ago   13.3kB

myubuntu:v1.0ubuntu:latest と同じ IMAGE ID を持っていることに注意してください。これは、myubuntu:v1.0 が同じ基礎となるイメージデータへの新しい参照であることを確認しています。

docker tag コマンド自体は、タグ付けの過程で明示的にプラットフォームを扱いませんが、イメージ自体は特定のプラットフォーム用にビルドされている場合があります。イメージを取得するとき、Docker は通常、システムのアーキテクチャ用のイメージを取得します。異なるプラットフォーム用のイメージを扱う必要がある場合は、通常、docker buildx のようなツールを使用してマルチプラットフォームイメージをビルドするか、取得操作中にプラットフォームを指定します(例:docker pull --platform linux/amd64 ubuntu)。ただし、既存のイメージをストリームに「登録」する目的では、docker tag コマンドが異なるストリーム名内でそのイメージへの新しい参照を作成する標準的な方法です。

まとめ

この実験では、docker scout stream コマンドを使用してストリームを管理する方法を学びました。まず、既存のストリーム(基本的にはイメージのリポジトリまたはコレクション)を一覧表示する方法を理解しました。docker images コマンドを使用してすべてのダウンロード済みイメージを確認し、その出力を awksort -u で処理して、一意のストリーム名(リポジトリ)を抽出して一覧表示しました。

また、特定のストリームに属するイメージを一覧表示する方法と、特定のプラットフォーム用のストリームにイメージを登録する方法も学びました。これらの手順は、ストリームのコンテキスト内で Docker イメージを整理および管理するための基本的な操作を示しています。