docker scout watch コマンドを使ってコンテナイメージを監視する方法

DockerDockerBeginner
今すぐ練習

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

はじめに

この実験では、docker scout watch コマンドを効果的に使用してコンテナイメージを監視する方法を学びます。具体的なリポジトリを対象に新しいイメージを監視するシナリオから始め、タグでフィルタリングすることで監視を絞り込みます。また、レジストリ内のすべてのリポジトリを対象に監視を拡張する方法や、リポジトリ内のすべての既存イメージを含む監視を開始する方法も学びます。実践的な演習を通じて、Docker Scout を使用したイメージ監視の設定と管理に関する実践的な経験を積むことができます。


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/push("Push Image to Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") subgraph Lab Skills docker/pull -.-> lab-555218{{"docker scout watch コマンドを使ってコンテナイメージを監視する方法"}} docker/tag -.-> lab-555218{{"docker scout watch コマンドを使ってコンテナイメージを監視する方法"}} docker/push -.-> lab-555218{{"docker scout watch コマンドを使ってコンテナイメージを監視する方法"}} docker/images -.-> lab-555218{{"docker scout watch コマンドを使ってコンテナイメージを監視する方法"}} docker/search -.-> lab-555218{{"docker scout watch コマンドを使ってコンテナイメージを監視する方法"}} end

特定のリポジトリを対象に新しいイメージを監視する

このステップでは、docker pull コマンドを使用して特定の Docker リポジトリを対象に新しいイメージを監視する方法を学びます。これは Docker の基本的な操作であり、レジストリからローカルマシンにイメージをダウンロードすることができます。

まず、Docker Hub レジストリから特定のイメージを取得しましょう。ここでは、Docker インストールのテストに使用される非常に小さなイメージである hello-world イメージを使用します。

docker pull hello-world

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

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

このコマンドは、デフォルトのレジストリ (Docker Hub) から latest タグの hello-world イメージをダウンロードするよう Docker に指示します。イメージがすでにローカルに存在する場合、Docker は新しいバージョンが利用可能かどうかを確認し、必要に応じてダウンロードします。

次に、ローカルマシン上にあるイメージを一覧表示して、hello-world イメージがダウンロードされたことを確認しましょう。

docker images

出力に hello-world が表示されるはずです。

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...

このコマンドは、ローカルマシンに保存されているすべての Docker イメージのリストを表示します。リポジトリ、タグ、イメージ ID、作成日、およびサイズが含まれます。

では、同じイメージを再度取得してみましょう。すでに hello-worldlatest バージョンを持っているため、Docker は再度ダウンロードしません。

docker pull hello-world

出力は、イメージが最新であることを示します。

Using default tag: latest
latest: Pulling from library/hello-world
Status: Image is up to date for hello-world:latest
docker.io/library/hello-world:latest

これは、docker pull がダウンロードする前に新しいバージョンを確認する方法を示しています。

特定のリポジトリを監視し、タグでフィルタリングする

このステップでは、特定の Docker リポジトリを監視し、イメージを取得する際にタグでフィルタリングする方法を学びます。Docker イメージには、タグで識別される異なるバージョンやバリエーションがあることがよくあります。タグを指定することで、特定のバージョンのイメージを取得することができます。

前のステップでは、デフォルトの latest タグの hello-world イメージを取得しました。では、異なるイメージ、たとえば ubuntu イメージを取得し、特定のタグを指定してみましょう。ここでは、Ubuntu 20.04 LTS リリースに対応する 20.04 タグを持つイメージを取得します。

docker pull ubuntu:20.04

指定した Ubuntu イメージのタグのダウンロード進捗を示す出力が表示されます。

20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

このコマンドは、Docker に対して 20.04 タグの ubuntu イメージをダウンロードするよう指示します。タグを指定しない場合、Docker はデフォルトで latest を使用します。

では、ローカルのイメージを再度一覧表示して、新しくダウンロードした ubuntu:20.04 イメージを確認しましょう。

docker images

一覧には、hello-world:latestubuntu:20.04 の両方が表示されるはずです。

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...
ubuntu        20.04     ...            ...            ...

これは、タグを指定することで ubuntu イメージの特定のバージョンを正常に取得できたことを示しています。

同じイメージの他のタグも取得することができます。たとえば、ubuntu イメージの 18.04 タグを取得してみましょう。

docker pull ubuntu:18.04

再び、ダウンロード進捗が表示されます。

18.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

イメージをもう一度一覧表示すると、取得した 3 つのイメージがすべて表示されます。

docker images

出力には、ubuntu:18.04 が含まれるようになります。

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...
ubuntu        20.04     ...            ...            ...
ubuntu        18.04     ...            ...            ...

これは、タグを使用してローカルマシン上の同じイメージの異なるバージョンを管理できることを示しています。

レジストリ内のすべてのリポジトリを監視する

このステップでは、Docker レジストリ内のリポジトリを一覧表示する方法を学びます。docker pull は個々のイメージを取得するために使用されますが、Docker Hub のようなパブリックレジストリ内の すべての リポジトリを Docker CLI から直接「監視」または一覧表示する単一のコマンドはありません。リポジトリの数が非常に多いためです。ただし、キーワードを基にリポジトリを検索することはできます。

docker search コマンドを使用すると、Docker Hub レジストリ内のイメージを検索できます。「nginx」に関連するイメージを検索してみましょう。

docker search nginx

検索語句「nginx」に一致するリポジトリのリストが表示されます。

NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        16000     [OK]
...

出力には、各一致するリポジトリに関する情報が提供されます。名前、説明、スターの数、公式イメージか自動ビルドかなどが含まれます。

検索結果をフィルタリングすることもできます。たとえば、「ubuntu」に関連する公式イメージのみを表示するには、--filter フラグを使用できます。

docker search --filter is-official=true ubuntu

このコマンドは、公式の Ubuntu リポジトリのみを表示します。

NAME      DESCRIPTION                STARS     OFFICIAL   AUTOMATED
ubuntu    Ubuntu is a Debian-based...   14000     [OK]

docker searchすべての リポジトリを一覧表示するわけではありませんが、Docker CLI を使用してレジストリ内のイメージを見つける主要な方法です。Docker Hub のような大規模なパブリックレジストリ内のリポジトリの包括的なリストを取得するには、通常、レジストリの API またはウェブインターフェイスを使用する必要があります。

この実験の目的上、イメージを検索して見つける方法を理解することは、「監視」したいまたはイメージを取得したいリポジトリを見つけるための重要なポイントです。

リポジトリを監視し、すべての既存イメージをプッシュする

このステップでは、既存のイメージにタグを付けて Docker レジストリにプッシュする方法を学びます。イメージをプッシュすることで、独自のカスタムイメージや既存イメージの修正版を他の人と共有したり、リモートの場所に保存したりすることができます。

イメージをプッシュする前に、レジストリアドレス、ユーザー名、リポジトリ名を使ってイメージにタグを付ける必要があります。前のステップで取得した ubuntu:20.04 イメージを使用します。このイメージにタグを付けて Docker Hub にプッシュしましょう。your_docker_username を実際の Docker Hub ユーザー名に置き換えてください。

docker tag ubuntu:20.04 your_docker_username/ubuntu:20.04

このコマンドは、ubuntu:20.04 イメージに新しいタグを作成します。新しいタグは your_docker_username/ubuntu:20.04 です。形式は [registry]/[username]/[repository]:[tag] です。Docker Hub にプッシュする場合は、レジストリ部分 (docker.io/) を省略できます。

では、ローカルのイメージを再度一覧表示して、新しいタグを確認しましょう。

docker images

リポジトリが your_docker_username/ubuntu、タグが 20.04 のエントリが表示され、元の ubuntu:20.04 イメージと同じイメージ ID を共有しているはずです。

REPOSITORY                     TAG       IMAGE ID       CREATED        SIZE
hello-world                    latest    ...            ...            ...
ubuntu                         20.04     ...            ...            ...
ubuntu                         18.04     ...            ...            ...
your_docker_username/ubuntu    20.04     ...            ...            ...

イメージに正しくタグが付けられたら、Docker Hub のリポジトリにプッシュできます。注意: イメージをプッシュするには、Docker Hub にログインしている必要があります。ログインしていない場合、docker push コマンドは失敗します。この実験の目的上、コマンドをデモンストレーションしますが、Docker Hub アカウントを持ち、ログインしていない限り、イメージを正常にプッシュする必要はありません。

docker push your_docker_username/ubuntu:20.04

ログインしている場合、レジストリにプッシュされるレイヤーを示す出力が表示されます。ログインしていない場合、認証エラーが表示されます。

The push refers to repository [docker.io/your_docker_username/ubuntu]
...

このコマンドは、指定されたタグのイメージを Docker Hub のリポジトリにアップロードします。

単一のコマンドでリポジトリを「監視」し、すべての既存イメージを自動的にプッシュすることはできませんが、プッシュしたいイメージに対して docker tagdocker push コマンドをスクリプト化することで、これを実現することができます。

まとめ

この実験では、レジストリからコンテナイメージをダウンロードする基本的な docker pull コマンドを学びました。具体的には、hello-world のような特定のイメージを取得し、docker images を使用してその存在を確認する方法を実演しました。また、Docker が同じイメージに対するその後の取得要求を効率的に処理し、新しいバージョンが利用可能な場合のみダウンロードする仕組みを確認しました。