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