解決 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,確保您獲得應用了修復的最新版本。