フィルターに基づいてリポジトリを無効化する
このステップでは、フィルターを使用してどのリポジトリとやり取りするかを管理する方法を探索します。Docker には、ファイルをフィルターするように任意のフィルターに基づいてリポジトリを「無効化」する組み込みコマンドはありませんが、イメージをリストまたは検索する際にフィルターを使用し、docker pull
コマンドを正確に使用することで、同様の結果を得ることができます。
フィルタリングは Docker の強力な機能で、docker images
、docker ps
、docker search
などのコマンドの結果を絞り込むことができます。イメージ名、タグ、作成時間など、さまざまな基準に基づいてフィルターをかけることができます。フィルターを使用することで、特定のパターンに一致するリポジトリを効果的に無視または除外し、現在の表示または操作から「無効化」することができます。
まず、ubuntu
と hello-world
のイメージを含む、現在所有しているすべてのイメージをリストしましょう。
docker images
次に、library
ネームスペースに属するイメージ ( ubuntu
や hello-world
などの公式イメージを含む) のみを表示したいとしましょう。reference
基準で --filter
フラグを使用することができます。reference
フィルターは、オプションのレジストリとタグを含むイメージ名に一致します。
docker images --filter "reference=*/library/*"
このコマンドは、参照に /library/
が含まれるイメージをリストします。ubuntu
と hello-world
のイメージがリストされるはずです。これは、特定のリポジトリを 含める ためにフィルターを使用する方法を示しています。
フィルターに基づいてリポジトリを「無効化」するシミュレーションを行うには、基本的に逆のことを行います。つまり、表示またはやり取りしたくないリポジトリを 除外する ためにフィルターをかけます。たとえば、library
ネームスペース以外のすべてのイメージをリストしたい場合は、より複雑なアプローチが必要です。おそらく、すべてのイメージをリストし、パターンに基づいて除外するスクリプトが必要になります。
「無効化」の文脈でのフィルタリングのより実用的なアプリケーションは、イメージを検索するときです。検索結果をフィルターして、特定の基準に一致するイメージを見つけ、それ以外のイメージを無視することができます。
Docker Hub で「ubuntu」という単語を含むイメージを検索してみましょう。
docker search ubuntu
これにより、Ubuntu に関連するリポジトリのリストが表示されます。次に、公式の Ubuntu イメージのみを表示したいとしましょう。is-official=true
基準で --filter
フラグを使用することができます。
docker search ubuntu --filter "is-official=true"
このコマンドは、検索結果をフィルターして、公式イメージのみを表示します。このフィルターを使用することで、検索結果からすべての非公式の Ubuntu リポジトリを効果的に「無効化」または無視しています。
重要なポイントは、取得に関する直接的な「フィルターによる無効化」コマンドはないものの、docker images
や docker search
などのコマンドでフィルターを使用して、利用可能なリポジトリの表示を管理し、「無効化」したいリポジトリとのやり取りを避けることができるということです。
このステップの検証では、is-official=true
フィルターを使用して docker search
コマンドを正常に使用したかどうかを確認します。