Skip to content

解决 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 或更高版本:

  1. 前往 Docker 官网下载最新安装包
  2. 覆盖安装现有版本
  3. 重启系统完成更新

💡 官方说明:此更新已修复证书问题,无需额外操作(详见 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

🚨 注意事项

  1. 数据备份:卸载前确保已备份重要容器和镜像
  2. 权限问题:所有 sudo 命令需输入管理员密码
  3. 重复操作:若首次失败,尝试重复步骤后再次重启
  4. 病毒误报:此错误属证书失效导致,非真实恶意软件

⚠️ 高危操作警告
直接操作 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