Железо и софт • 06.06.2026
Docker Desktop не запускается ошибка WSL integration Cannot allocate memory как исправить
Пытаюсь поднять локальное окружение из нескольких контейнеров через Docker Desktop на Windows 11, но процесс запуска намертво зависает. Индикатор Docker Engine бесконечно крутится желтым, а затем приложение выплевывает критический лог сбоя: «WSL integration error: Cannot allocate memory. Фоновое ядро Linux не может выделить ресурсы». При этом диспетчер задач показывает, что свободная оперативная память на компьютере еще есть, а процессор не загружен на максимум. Полная переустановка Докера поверх старых директорий не помогла снять блокировку. Подскажите, из-за каких скрытых лимитов виртуализации падает демон и как вернуть стабильный запуск контейнеров?
Ответы (5)
Артем Опс
Здорово! Ошибка "Cannot allocate memory" — это классический конфликт динамического распределения ресурсов между Windows 11 и виртуальной подсистемой WSL2. По умолчанию микрософтовское виртуальное ядро пытается забрать под свои нужды до 50% всей оперативной памяти компьютера. Когда ты запускаешь тяжелые контейнеры, процесс `Vmmem` раздувается в ОЗУ, но из-за багов кэширования Линукс не возвращает память обратно хосту. В момент очередного перезапуска Докер шлет низкоуровневый запрос на создание нового сетевого сокета, винда видит искусственный дефицит свободных мегабайт и принудительно обрывает процесс линковки демона по соображениям безопасности системы.
Марина Кернел
Чтобы жестко зафиксировать рамки потребления памяти виртуальной машиной и навсегда убрать вылеты рантайма, создайте файл ограничений строго по шагам:
1. Зажмите на клавиатуре комбинацию клавиш Win + R, введите строку `%userprofile%` и нажмите Enter.
2. В корне открывшейся папки вашего профиля создайте обычный файл с названием `.wslconfig` (следите, чтобы у него не было скрытого расширения .txt).
3. Откройте его через Блокнот и пропишите структуру конфигурации: `[wsl2]` строкой ниже `memory=6GB` (задайте точный лимит под ваше железо), а под ней `swap=2GB`.
4. Сохраните изменения в Блокноте и закройте текстовый редактор.
5. Запустите командную строку от админа и введите `wsl --shutdown` для жесткого перезапуска всех модулей. Докер сразу запустится штатно.
Дмитрий Стек
Ребята, проверяйте состояние файла подкачки (pagefile.sys) вашей операционной системы Windows 11. Этот сбой "Cannot allocate memory" намертво наступает, если вы вручную отключили виртуальную память винды на диске C или жестко зажали её размер до 1-2 гигабайт ради экономии места на SSD. При запуске Докер создает тяжелые изолированные виртуальные разделы RAM, и если физическая оперативка внезапно забивается, системе некуда сбросить неактивные страницы кэша. Верните автоматическое определение размера файла подкачки в дополнительных параметрах быстродействия системы.
Никита Кубер
Если вам запрещено создавать файлы глобальных конфигураций, можно принудительно сбросить забившийся кэш буфера страниц (page cache) изнутри терминала Линукса по инструкции:
1. Запустите консоль вашей Ubuntu или дистрибутива WSL, который интегрирован с Докером.
2. Перейдите в режим суперпользователя, введя команду `sudo -i` и указав ваш пароль.
3. Пропишите низкоуровневую команду сброса занятых секторов кэша памяти: `echo 3 > /proc/sys/vm/drop_caches`.
4. Нажмите Enter, фоновый Linux мгновенно освободит все удерживаемые неактивные мегабайты памяти хоста.
5. Вернитесь в Windows и нажмите кнопку Restart в графическом интерфейсе Докера — виртуальный мост сокетов заведется без ошибок.
Роман Скрипт
Тщательно проверьте вкладку ресурсов в самом приложении через значок шестеренки. Сбой аллокации памяти часто возникает, если у вас в блоке "Resources -> WSL integration" одновременно включены галочки для пяти разных установленных дистрибутивов Линукса (Ubuntu, Debian, Kali). Каждый из них при старте Докера отъедает свой кусок оперативки, вызывая переполнение буфера. Оставьте активным только один рабочий дистрибутив, остальные ползунки отключите.