解决 macOS 上“com.docker.socket 未打开,因为它包含恶意软件”错误
问题原因
当 Docker Desktop 的 macOS 签名证书过期或轮换时,系统可能误判其为恶意软件,触发以下警告:
plaintext
“com.docker.socket” was not opened because it contains malware
此问题通常在 macOS 系统重启后突然出现,根本原因是 Docker 官方轮换了旧签名证书(Docker 官方说明),导致已安装的组件被 macOS 安全机制拦截。
推荐解决方案
✅ 官方修复方案(首选)
升级到 Docker Desktop 4.37.2 或更高版本:
- 前往 Docker 官网下载最新安装包
- 覆盖安装现有版本
- 重启系统完成更新
💡 官方说明:此更新已修复证书问题,无需额外操作(详见 Docker 事件报告)。
替代解决方案
若升级无效,尝试以下完整卸载重装流程(会清除所有本地容器、镜像和卷):
步骤 1:彻底卸载 Docker
bash
# 通过 Homebrew 卸载(如有)
brew uninstall --cask docker --force
brew uninstall --formula docker --force
# 手动删除关键残留文件
sudo rm /Library/PrivilegedHelperTools/com.docker.socket
sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd
步骤 2:重新安装最新版
bash
# 下载官方的 .dmg 安装包
# 通过终端挂载安装镜像
sudo hdiutil attach Docker.dmg
# 执行安装脚本
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
# 卸载镜像
sudo hdiutil detach /Volumes/Docker
步骤 3:重启系统
bash
sudo shutdown -r now
🚨 注意事项
- 数据备份:卸载前确保已备份重要容器和镜像
- 权限问题:所有
sudo
命令需输入管理员密码 - 重复操作:若首次失败,尝试重复步骤后再次重启
- 病毒误报:此错误属证书失效导致,非真实恶意软件
⚠️ 高危操作警告
直接操作launchctl
或修改系统权限文件可能导致系统不稳定,建议优先采用官方方案。
命令行替代方案(无需 Docker Desktop)
适用于只需 Docker CLI 的用户:
bash
# 通过 Homebrew 安装必要组件
brew install docker docker-compose colima
# 启动 Colima 服务
colima start
# 修复凭证存储错误(若出现)
sed -i '' 's/credsStore/credStore/g' ~/.docker/config.json
此方案通过轻量级虚拟机 Colima 提供容器运行时环境。
验证解决方案
成功修复后执行:
bash
docker run hello-world
应输出欢迎信息而非恶意软件警告。
📌 终极建议:
- 优先采用官方升级方案
- 重装前备份
/Library/PrivilegedHelperTools/
下的 Docker 文件- 关注 GitHub 问题追踪:docker/for-mac #7520