🐳 解決 Docker Desktop 無法連線錯誤:connect ENOENT \.\pipe\dockerDesktopEngine
🧠 前言:什麼是 connect ENOENT?
當你在 Windows 上開發 .NET Core 或其他應用程式,使用 Docker Desktop 打包時,可能會遇到以下錯誤:
connect ENOENT \\.\pipe\dockerDesktopEngine
這代表 你的電腦無法連接 Docker Engine 背後的服務(Daemon)。簡單來說,Docker 沒有啟動,或是你目前的 Docker 使用方式不對。
🧪 錯誤重現場景
你可能在執行以下指令時發生錯誤:
docker build -t net_app .
系統回傳錯誤訊息:
ERROR: error during connect: Head "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/_ping": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
🧯 常見原因
-
Docker Desktop 沒有啟動或已閃退。
-
使用了錯誤的 Docker 容器模式(如 Windows 容器 vs Linux 容器)。
-
Windows 的 Docker 引擎服務(daemon)沒有啟動。
-
WSL2 被關閉或設定錯誤。
-
防毒軟體或防火牆阻擋 Docker 的內部連線。
🛠 解決方法(完整步驟)
✅ 1. 重新啟動 Docker Desktop
-
點選右下角的 Docker 圖示 > Quit Docker Desktop。
-
重新用管理員身份開啟 Docker Desktop。
-
打開 PowerShell 測試:
docker version
✅ 2. 確認 Docker 服務狀態
Get-Service docker
若狀態為 Stopped,請啟動:
Start-Service docker
✅ 3. 重置 Docker 為出廠設定
-
開啟 Docker Desktop。
-
進入:⚙️ Settings → Troubleshoot → Reset to factory defaults。
-
確認並重新啟動電腦。
✅ 4. 確保使用 WSL2 模式
Docker Desktop 支援 Windows 的 WSL2 子系統。
檢查是否已啟用:
wsl --list --verbose
若沒有看到 docker-desktop
,執行:
wsl --shutdown wsl --set-default-version 2
✅ 5. 手動啟動 Docker Daemon(進階)
若仍無法啟動,可以手動執行 Docker 程序:
start "C:\Program Files\Docker\Docker\Docker Desktop.exe"
✅ 6. 測試是否成功
docker version docker ps
能成功列出版本與容器清單即表示問題解決。
🔎 額外說明:Docker 管道連線是什麼?
錯誤訊息中的 \\.\pipe\dockerDesktopEngine
是 Windows Named Pipe 的一種通訊方式,Docker 用它讓前端 CLI 工具與後台服務(Daemon)互相溝通。
當這條連線壞掉,就好像電話線被剪斷一樣 —— 你說什麼 Docker 都聽不到,自然就回錯誤訊息。
📚 總結
問題 | 解法 |
---|---|
Docker Desktop 無法連線 | 重新啟動 Docker / Windows 服務 |
出現 ENOENT 錯誤 | 確認 WSL2 與 Docker 引擎啟動 |
仍有問題 | Reset Docker 設定 + 檢查 WSL |
👨💻 結語
這篇教學不只適合工程師,也適合剛接觸 Docker 的新手開發者。遇到錯誤別怕,一步一步照著解,就能快速恢復你的開發環境!
留言
張貼留言