Docker & Containers

Dockerイメージ名解析参照先と選択方法を見える形に

参照文字列を解析するか、フィールドから組み立てます。既定値とダイジェストの優先順位を確認してください。

Dockerイメージ名解析

参照またはフィールド

参照はこのブラウザー内で処理します。レジストリへの問い合わせ、アップロード、Docker daemonへの接続は行いません。

解析結果

参照またはリポジトリパスを入力してください。

入力モードと例

モードごとに入力を保持します。レジストリを空欄にするとDocker Hubを使います。リポジトリにはパス全体を指定し、ホストはhost:5000のように曖昧さなく記述します。

参照は1件、最大4,096文字。リポジトリパスは255文字、タグは128文字。sha256/384/512の完全な小文字16進ダイジェストに対応します。

最新の入力を解析するまで待機中…

Dockerイメージ名解析は、想定したレジストリにアクセスできないときの切り分けに使えます。registry.example.com:5000/team/api:v2のコロンは、一方がポート、もう一方がタグです。最初のコロンだけで分けると構造を読み違えます。

短い名前とプライベートレジストリの例を比較すると、どの値が省略されていたか分かります。入力は書き換えず、リポジトリの場所と内容を選ぶ情報を別々に表示します。

Dockerイメージ名解析で確認できること

省略されていた値を区別する

Dockerイメージ名解析はnginxをdocker.io/library/nginx:latestへ展開し、補完した値に印を付けます。プライベートレジストリのパスには勝手にlibraryを加えず、意図したリポジトリとの違いを確認できます。

短いイメージ参照がレジストリ、リポジトリ、タグの色分けされた要素へ展開される

タグを残してダイジェストを読む

タグとダイジェストが同時にある参照も、そのままの情報を正規化表示に残します。別の有効な参照ではダイジェストによる選択を示し、タグとの対応が検証済みだと誤解させません。

可動タグと固定の指紋からコンテナへ線が伸び、指紋による選択が強調される

名前の区切りと省略を読み違えないために

01

最初のスラッシュまでを確認する

スラッシュがある場合、先頭要素にドット、コロン、大文字があるか、localhostならレジストリとみなします。スラッシュのないlocalhostはDocker Hub上のリポジトリ名です。

02

モードごとの入力を使い分ける

フィールドへ切り替えても参照入力は残ります。リポジトリパスには名前空間を含め、:tagと@digestはそれぞれ専用の欄へ入力してください。レジストリを省略するとDocker Hubになります。

03

結果の更新を確認して出力する

自動解析は編集が止まって350ミリ秒後に動きます。オフにすると実行ボタンが現れ、Ctrl/Cmd + Enterも使えます。例の読み込みとクリアはプレビュー後に適用し、入力と結果を1回戻せます。

名前の構造を保ったまま調べる

Docker Hubの短縮形を展開

docker.io、library、latestは、それぞれ必要な条件で補完します。旧ドメインindex.docker.ioも正規化します。タグの大文字小文字は維持し、リポジトリ名の大文字は自動修正せずエラーにします。

パスと選択子を個別に検査

レジストリのホスト名、数字のポート、角括弧付きの純IPv6表記に対応します。パスの区切り、タグ文字、ハッシュの長さを別々に検査するため、不完全なダイジェストをタグとして扱いません。

組み立てた参照と解析結果を保存

レジストリ、リポジトリ、タグ、ダイジェストから同じ規則で参照を生成します。2種類の参照のコピーと、既定値の印を含むJSON出力に対応します。入力やモードを変更すると、成功するまで出力操作を無効にします。

構文の確認だけでは判断できないこと

実在するイメージの検証はしない
レジストリ、権限、manifest、CPUアーキテクチャ、署名、脆弱性は調べません。ここでの組み立ては参照文字列の生成であり、イメージのビルド、取得、実行、pushではありません。
タグからダイジェストは求めない
タグもダイジェストもない場合だけlatestを加えます。ダイジェストがあればそれが優先され、タグが同じ内容を指す保証はありません。両者の対応を問い合わせたり、ハッシュを計算したりしません。
名前付き参照を1件ずつ扱う
Dockerfile、Compose、Kubernetes文書、URL、コマンド、アーカイブ、一覧からは抽出しません。外側の空白は除きますが、内部の空白、認証情報、未展開の変数を拒否します。単独のイメージIDから名前は推定しません。
対応する文字と長さを限定
入力は4,096文字、正規化後のパスは255文字、タグは所定のASCII文字で1~128文字です。タグの先頭にドットとハイフンは使えません。ダイジェストはsha256/384/512の完全な小文字16進数のみ。IPv6のゾーン識別子やドットを含むIPv4混在表記は対象外で、数字のポートも接続確認はしません。

Dockerイメージ名解析のよくある質問

Dockerでrepository name must be lowercaseと表示される原因は?

リポジトリのパス要素は小文字が必要ですが、タグには大文字を使えます。タグの区切りより前にある名前空間と名前を確認してください。入力を自動的に小文字へ変えると誤記を隠すため、このツールではエラーとして知らせます。

タグとダイジェストを同時に指定すると、両者の一致は確認されますか?

一致確認を前提にしてはいけません。両方がある場合はダイジェストで選択します。正規化した表示はタグを保持し、有効な参照からは省略します。同一イメージとの対応を証明したい場合は、別途レジストリのメタデータを確認してください。

latestタグが実際にどのバージョンを指しているか確認するには?

latestは管理者が割り当てるタグで、バージョン番号の最大値を自動的に選ぶ指定ではありません。指す内容は変更できます。このページでは文字列として表示するだけで、現在の対象を知るには実際のレジストリを調べる必要があります。

ローカルレジストリの指定がdocker.ioに送られるのはなぜですか?

registry/apiの先頭要素にはドットもポートもなく、小文字なので名前空間と解釈されます。registry:5000/apiや実際のドメインを使うべきか確認してください。フィールド入力では曖昧なレジストリを拒否して、誤った宛先を生成しないようにしています。

Dockerのリポジトリ名とイメージ名って同じもの?

呼び方は文脈によって重なりますが、参照にはレジストリ、リポジトリパス、タグやダイジェストという別の要素があります。たとえばteam/api:v2のパスはteam/api、最後の名前はapi、タグはv2です。結果ではパス全体と末尾の名前を分けて表示します。

解決しませんでしたか?

次の参照先を確認する

Dockerイメージ名解析で宛先と内容の選択を一緒に点検しましょう。現在の入力が検査を通過したら、有効な参照を設定へコピーできます。