Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

PowerShell 的 Docker 報 invalid reference format?先找真正鏡像參數

掛載或續行問題可能把別的字串送進鏡像位置。先核終端版本及參數邊界,再檢查名稱標籤,不要清資料。

原創編輯插畫:先配對選項值,再找鏡像參數。
原創編輯插畫:先配對選項值,再找鏡像參數。 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 = 'example.com/team/app:Release_1'、$dockerArgs = @('run','--rm',$image),逐項看陣列。只是語法佔位,不是真實鏡像,再加入去敏的選項值。不要為列印而呼叫docker,預覽不證明原生實收。

依目前版本整理引號

重打最小單行命令。PowerShell續行反引號後若有空格便失效,不能混用Bash反斜線或cmd.exe脫字符。含空格參數須完整引用。

微軟說明7.3的Legacy、Standard、Windows差異,勿先全域改模式。--%限制一般變數展開且遇換行或管線結束,不是動態路徑萬用修復。.cmd包裝會增加解析層。

核對引用並驗證原操作

找出鏡像項後核發布者原引用,倉庫路徑用正斜線及小寫字母;標籤另有規則,可含大寫。不要整串轉小寫、改標籤或移除摘要。

不確定時用可信參數檢查器,在同一終端及包裝路線測無機密合成值,官方示例是TestExe。再執行原獲准操作並驗證。解析成功不證明掛載、登入或應用正常。本文未實測Windows或啟動容器;刪鏡像、卷或憑證不能修復分詞。

原創編輯插畫:終端版本、傳參模式與包裝路線分別核對。
原創編輯插畫:終端版本、傳參模式與包裝路線分別核對。 Watch at Ease