解決 macOS 上最近的 Docker Desktop 問題
本指南提供瞭解決影響部分 macOS Docker Desktop 使用者近期問題的步驟。該問題可能導致 Docker Desktop 無法啟動,在某些情況下,還可能觸發不準確的惡意軟體警告。有關此事件的更多詳細資訊,請參閱部落格文章。
注意Docker Desktop 4.28 及更早版本不受此問題影響。
可用解決方案
根據您的情況,有幾種可用的選項
升級到 Docker Desktop 版本 4.37.2(推薦)
推薦的方法是升級到最新的 Docker Desktop 版本,即版本 4.37.2。
如果可能,直接透過應用程式更新。如果不行,並且您仍然看到惡意軟體彈出視窗,請按照以下步驟操作
終止無法正常啟動的 Docker 程序
$ sudo launchctl bootout system/com.docker.vmnetd 2>/dev/null || true $ sudo launchctl bootout system/com.docker.socket 2>/dev/null || true $ sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd || true $ sudo rm /Library/PrivilegedHelperTools/com.docker.socket || true $ ps aux | grep -i docker | awk '{print $2}' | sudo xargs kill -9 2>/dev/null
確保惡意軟體彈出視窗已永久關閉。
啟動 Docker Desktop。5 到 10 秒後會顯示一個特權彈出訊息。
輸入您的密碼。
現在您應該會看到 Docker Desktop 儀表板。
提示如果在完成這些步驟後惡意軟體彈出視窗仍然存在,並且 Docker 位於廢紙簍中,請嘗試清空廢紙簍並重新執行這些步驟。
如果您使用的是 4.32 - 4.36 版本,請安裝補丁
如果您無法升級到最新版本並且看到惡意軟體彈出視窗,請按照以下步驟操作
終止無法正常啟動的 Docker 程序
$ sudo launchctl bootout system/com.docker.vmnetd 2>/dev/null || true $ sudo launchctl bootout system/com.docker.socket 2>/dev/null || true $ sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd || true $ sudo rm /Library/PrivilegedHelperTools/com.docker.socket || true $ ps aux | grep docker | awk '{print $2}' | sudo xargs kill -9 2>/dev/null
確保惡意軟體彈出視窗已永久關閉。
下載並安裝與您當前基礎版本匹配的已打補丁的安裝程式。例如,如果您的版本是 4.36.0,請安裝 4.36.1。
啟動 Docker Desktop。5 到 10 秒後會顯示一個特權彈出訊息。
輸入您的密碼。
現在您應該會看到 Docker Desktop 儀表板。
提示如果在完成這些步驟後惡意軟體彈出視窗仍然存在,並且 Docker 位於廢紙簍中,請嘗試清空廢紙簍並重新執行這些步驟。
MDM 指令碼
如果您是 IT 管理員,並且您的開發人員看到惡意軟體彈出視窗
確保您的開發人員擁有重新簽名版本的 Docker Desktop 4.32 或更高版本。
執行以下指令碼
#!/bin/bash # Stop the docker services echo "Stopping Docker..." sudo pkill -i docker # Stop the vmnetd service echo "Stopping com.docker.vmnetd service..." sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist # Stop the socket service echo "Stopping com.docker.socket service..." sudo launchctl bootout system /Library/LaunchDaemons/com.docker.socket.plist # Remove vmnetd binary echo "Removing com.docker.vmnetd binary..." sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd # Remove socket binary echo "Removing com.docker.socket binary..." sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket # Install new binaries echo "Install new binaries..." sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/ sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /Library/PrivilegedHelperTools/
Homebrew casks
如果您使用 Homebrew casks 安裝了 Docker Desktop,建議的解決方案是執行完整重新安裝以解決問題。
要重新安裝 Docker Desktop,請在您的終端中執行以下命令
$ brew update
$ brew reinstall --cask docker
這些命令將更新 Homebrew 並完全重新安裝 Docker Desktop,確保您擁有已應用修復的最新版本。