2017-03-02 196 views
2

我試圖登錄到我的AWS帳戶與aws ecr get-login --region eu-west-1一個docker login串 - 但是,當我這樣做,我得到這個:泊塢窗命令失敗Cygwin中 - 泊塢窗服務達

警告:未能從守護進程獲取默認註冊表端點(連接期間發生錯誤:獲取http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info:open //./pipe/docker_engine:系統找不到指定的文件在Windows的默認守護進程配置中,必須將docker客戶端升級爲連接。這個錯誤也可能表明docker守護進程沒有運行。)。使用系統默認值:https://index.docker.io/v1/ 連接期間出現錯誤:發佈http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/auth:打開//./pipe/docker_engine:系統找不到指定的文件。在Windows上的默認守護進程配置中,必須將docker客戶端升級爲連接。這個錯誤也可能表明docker守護進程沒有運行

特有的事情是,這只是在上週工作。我在Windows 10上使用Cygwin。我已經驗證Docker正在運行在services.msc - 我不完全確定現在要檢查什麼。

回答

0

它看起來像你試圖通過傳遞一個Windows管道路徑到cygwin來打開管道到服務。它被cygwin解釋爲一個http路徑。

這可能是因爲docker命令在找到窗口python之前找到了cygwin python。有幾種解決方案。最簡單的是切換回windows上下文執行docker命令。如果docker實際上是docker.bat,則以cmd.exe /c docker.bat開始,否則從cmd.exe /c docker.exe開始。您也可以嘗試cmd.exe /c start /w /i docker.bat。或者一些變化。

你不想在cygwin中直接執行任何docker命令,因爲它可能不知道如何在windows路徑和它期望的linux路徑之間進行轉換。

2

如果你想在Windows 10運行在Cygwin的泊塢窗命令,然後從Cygwin的調用下面的命令:

docker-machine env --shell=bash 

它會顯示由碼頭工人所需要的環境變量:

export DOCKER_TLS_VERIFY="1" 
export DOCKER_HOST="tcp://192.168.xx.xx:2376" 
export DOCKER_CERT_PATH="C:\Users\...\machines\default" 
export DOCKER_MACHINE_NAME="default" 
export COMPOSE_CONVERT_WINDOWS_PATHS="true" 
# Run this command to configure your shell: 
# eval $(docker-machine env --shell=bash) 

運行以下命令設置環境變量:

eval $(docker-machine env --shell=bash)