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.

Ссылки

Proxmox: расширение диска виртуальной машины с LVM

2026-02-19 Proxmox Home Lab

LVM (Logical Volume Manager) — это система управления дисками в Linux, которая добавляет гибкий уровень абстракции между физическими дисками и файловыми системами. В данной заметке рассмотрим, как расширить диск виртуальной машины в Proxmox, если внутри гостевой ОС используется LVM.

Читать далее

Proxmox: как конвертировать шаблон (template) в виртуальную машину

Иногда возникает необходимость конвертировать шаблон (template) обратно в виртуальную машину в Proxmox. Например, когда нужно обновить базовый образ или внести изменения в конфигурацию. Делается это достаточно просто через командную строку при помощи утилиты qm.

Читать далее

Linux: Не загружается Цитадель рейнджеров в Wasteland 2

2019-01-18 Linux Wasteland 2

В Linux версии игры Wasteland 2 есть один неприятный “баг”: локация Цитадель рейнджеров может не загружаться, либо процесс сохранения в данной локации происходит бесконечно долго. Причина проблемы - движок игры (Unity), который пытается загрузить несколько копий одних и тех же файлов. Для решения данной проблемы нужно изменить лимиты на количество одновременно открытых файлов.

Читать далее

Git: как локально удалить ветки, которые уже смержены (merged)

2016-10-02 Git Aliaksei Bahdanau

Для того, чтобы удалить ветки из локального Git репозитория, которые уже были смержены (merged), например в master и development, можно воспользоваться слудеющей командой:

git branch --merged | egrep -v "(^\*|master|development)" | xargs git branch -d

Первая часть команды

git branch --merged | egrep -v "(^\*|master|development)"

выводит все ветки (кроме веток master и development), которые уже смержены.

Вторая часть команды

xargs git branch -d

удаляет найденные ветки локально, используя в качестве параметров результаты из 1й команды

Старые записи