DevBug blog

О Linux, Java, разработке ПО и не только

macOS: как исправить ошибку «Malware Blocked» в Docker Desktop

2026-04-28 macOS Docker

После обновления macOS или Docker Desktop иногда появляется сообщение: «“com.docker.socket” was not opened because it contains malware». Это не настоящая малварь — это ложное срабатывание XProtect из-за несоответствия подписи кода в уже установленных вспомогательных бинарниках. Лечится заменой файлов на корректно подписанные из свежего бандла Docker.app.

Почему так происходит

Docker Desktop устанавливает два привилегированных хелпера в /Library/PrivilegedHelperTools/:

  • com.docker.socket
  • com.docker.vmnetd

При обновлении Docker эти файлы иногда остаются от старой версии с отозванным или невалидным сертификатом. XProtect это замечает и блокирует запуск.

Исправление: заменить бинарники

Шаг 1. Полностью завершаем Docker Desktop. Проверяем в Activity Monitor, что не осталось процессов docker или com.docker.*.

Шаг 2. Останавливаем системные службы Docker:

sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist 2>/dev/null
sudo launchctl bootout system /Library/LaunchDaemons/com.docker.socket.plist 2>/dev/null

Шаг 3. Удаляем заблокированные бинарники:

sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket

Шаг 4. Копируем корректно подписанные версии из бандла приложения:

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/

Шаг 5. Перезагружаем Mac.

Важно: именно перезагрузка, а не просто перезапуск Docker. XProtect кэширует вердикт о плохой подписи, и без ребута он сохраняется.

После перезагрузки запускаем Docker Desktop — ошибка должна исчезнуть.

Проверка подписи

Перед запуском можно убедиться, что новые бинарники подписаны корректно:

codesign -vvv /Library/PrivilegedHelperTools/com.docker.socket
codesign -vvv /Library/PrivilegedHelperTools/com.docker.vmnetd

Если подпись валидна, вывод будет содержать valid on disk и satisfies its Designated Requirement.

Ссылки

comments powered by Disqus