テクノロジー · 実用ガイド

PowerShellのDockerでinvalid reference format?実際のイメージ引数を探す

マウントや改行の崩れで別の値がイメージ位置に入ることがあります。名前変更や削除の前にシェル版と引数境界を確認。

オリジナル編集イラスト:オプションと値を対応させIMAGEを特定。
オリジナル編集イラスト:オプションと値を対応させIMAGEを特定。 Watch at Ease

このエラーは意図したイメージ名が不正という証明ではない。docker runはオプション、イメージ、コンテナー命令の順だ。PowerShellの引用や継続失敗で別の値がその位置に届く可能性がある。

シェルと実行ファイルを特定

失敗したセッションで $PSVersionTable.PSVersion と Get-Command docker -Allを記録。7.3以降は $PSNativeCommandArgumentPassingも記録する。5.1と新版は異なり、変数がないことはStandardの証明でない。

改行を残して秘密を除いた命令を保存し、PowerShellの未認識-vとDockerの解析を区別する。環境全体、パスワード、レジストリー資格情報は公開しない。

起動せずイメージ位置を明示

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]に従い各オプションと値を対応させる。分割したマウントの残りがIMAGEになる場合がある。IMAGE後のフラグは通常コンテナー側に渡る。

非実行例 $image = 'example.com/team/app:Release_1' と $dockerArgs = @('run','--rm',$image) を項目別に見る。架空名は構文用で実在推奨ではない。元の秘密を除いた値を一つずつ足す。配列表示のためdockerを呼ばず、表示を実受信の証明としない。

現在のPowerShellで引用を組み直す

最小の一行を打ち直す。PowerShell継続のバッククォート後の空白は継続を壊す。Bashの逆斜線やcmd.exeのキャレットは代用できない。空白を含む引数全体をまとめる。

公式は7.3以降のLegacy、Standard、Windowsを説明するが、最初に全体設定を変えない。--%は通常変数展開を制限し改行かパイプで終了するため万能ではない。.cmd経由は直接docker.exeより解析段が増える。

参照を確認して本来の操作を検証

実イメージを特定後、配布元の参照と照合。リポジトリはスラッシュと小文字規則を使うが、タグは別規則で大文字も許す。全体の小文字化、タグ変更、ダイジェスト除去で隠さない。

不明なら同じシェル・ラッパーで秘密のない合成値を信頼できる引数検査器へ渡す。公式例はTestExe。その後許可された本来の操作と結果を確認する。解析成功はマウントや認証、アプリ正常を示さない。本稿はWindows実測やコンテナー起動をしておらず、データ削除も分割修復ではない。

オリジナル編集イラスト:版、引数モード、ラッパー経路を分ける。
オリジナル編集イラスト:版、引数モード、ラッパー経路を分ける。 Watch at Ease