1. ホーム
  2. docker

[解決済み] Dockerエラー:無効な参照形式:リポジトリ名は小文字でなければならない

2022-02-26 18:08:51

質問

私のプロジェクトでこのようなDockerエラーが発生しました。

invalid reference format: repository name must be lowercase

この一般的なメッセージには、さまざまな原因があるのでしょうか?

私は努力の末にすでにそれを理解しました。ウェブ検索をしても解決策がすぐに出てこないのと、このエラーメッセージはDockerが遭遇する直接的な問題を説明しているわけではないので、ここに記録するために私自身の質問に答えることにします。

解決方法は?

dockerにおけるquot;reference"とは、イメージへのポインタのことです。イメージ名、イメージID、レジストリサーバを名前に含む、sha256タグでイメージを固定するなど、実行したいイメージを指し示すものであれば何でもかまいません。

invalid reference format のエラーメッセージは、指定された文字列を docker がイメージに変換できないことを意味します。これは、名前が無効であるか、あるいは docker run コマンドラインでイメージを実行している場合は、そのようになります。

名前自体が無効な場合は repository name must be lowercase は、レジストリ名やリポジトリ名に大文字を使うことを意味します。例えば YourImageName:latestyourimagename:latest .

を使用すると docker run コマンドラインで、パラメータを空白で引用しなかったり、引数の値を見落としたり、コマンドラインの順番を間違えたりした結果、このようなことがよく起こります。コマンドラインの順番は

docker ${args_to_docker} run ${args_to_run} image_ref ${cmd_to_exec}

runにargsを渡す際に最も多いエラーは、パス名にスペースを含むボリュームマッピングを展開し、パスを引用するかスペースをエスケープしないことです。例

docker run -v $(pwd):/data image_ref

ここで、もしあなたがディレクトリ /home/user/Some Project Dir を定義すると、匿名ボリューム /home/user/Some をコンテナ内で実行し Project:latest というコマンドで Dir:/data image_ref . そして、その修正は、引数を引用することです。

docker run -v "$(pwd):/data" image_ref

その他、クォートミスしがちな場所として、環境変数があります。

docker run -e SOME_VAR=Value With Spaces image_ref

これは、dockerがイメージを実行しようとしていると解釈します。 With:latest とコマンド Spaces image_ref . ここでも、環境パラメータを引用することで修正します。

docker run -e "SOME_VAR=Value With Spaces" image_ref

合成ファイルでは、画像名で変数を展開すると、その変数が正しく展開されないことがあります。そこで、もし

version: 2
services:
  app:
    image: ${your_image_name}

その後、ダブルチェックで your_image_name はすべて小文字の文字列に定義されています。