Разрешите привилегированное сопоставление портов, не работает в Mac Docker-Desktop.

Вопрос или проблема

Я не могу включить привилегированное сопоставление портов в MAC Docker Desktop, я отметил флажок ‘Разрешить привилегированное сопоставление портов (требуется пароль)’ в расширенных настройках. Я использую Mac на базе Intel. Я переустановил Docker-Desktop и перезагрузил ноутбук, но проблема по-прежнему остается.

Ответ с ошибкой от демона: Порты недоступны: открытие порта TCP 127.0.0.1:389 -> 0.0.0.0:0: не удалось подключиться к /var/run/com.docker.vmnetd.sock: работает ли vmnetd?: dial unix /var/run/com.docker.vmnetd.sock: connect: нет такого файла или каталога

Я попробовал проверить, работает ли vmnetd

 % ps -ef | grep vmnetd
  501 16466  4073   0 11:46PM ttys000    0:00.00 grep vmnetd

Версия Docker Desktop: v4.34.3

% docker --version
Версия Docker 27.2.0, сборка 3ab4256

Ответ или решение

Проблема с привилегированной маршрутизацией портов в Docker Desktop на Mac

Описание проблемы

Вы сообщили о проблемах с включением привилегированной маршрутизации портов в Docker Desktop на Intel-базированном Mac. Несмотря на то что вы отметили флажок «Разрешить привилегированную маршрутизацию портов (требуется пароль)» в разделе настроек, система не позволяет это сделать, сообщая об ошибке при попытке подключиться к порту.

Ошибка

Вы получили следующую ошибку:

Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:389 -> 0.0.0.0:0: failed to connect to /var/run/com.docker.vmnetd.sock: is vmnetd running?: dial unix /var/run/com.docker.vmnetd.sock: connect: no such file or directory

Из вывода команды ps -ef | grep vmnetd видно, что процесс vmnetd не работает, что может быть основной причиной вашей проблемы.

Возможные решения

  1. Проверка и перезапуск vmnetd:

    • Поскольку процесс vmnetd не запущен, вам необходимо перезапустить Docker Desktop. Откройте приложение Docker Desktop и посмотрите на иконку в строке меню. Если оно не запущено, запустите его заново. Это должно автоматически запустить нужные демоны, включая vmnetd.
    • Если проблема сохраняется после перезапуска приложения, попробуйте вручную перезагрузить Docker Desktop. Для этого в меню приложения выберите "Quit Docker Desktop" и затем запустите его снова.
  2. Проверка системных прав:

    • Убедитесь, что у вас есть необходимые права для выполнения операций, связанных с привилегированными портами. Если вы запускаете Docker с учетной записи, не обладающей администраторскими правами, это может блокировать доступ к определенным функциями и портам. Попробуйте запустить Docker Desktop от имени администратора.
  3. Исключение конфликта с сетевыми настройками:

    • Убедитесь, что другие приложения не используют порт, который вы пытаетесь открыть. Например, порт 389 может быть занятыми другими службами. Вы можете проверить занятые порты с помощью команды:
      sudo lsof -iTCP -sTCP:LISTEN -P
    • Если найдете конфликтующие службы, остановите их или измените настройки запуска Docker на использование другого порта.
  4. Переустановка Docker Desktop:

    • Так как вы уже пробовали переустановку Docker Desktop, убедитесь, что вы удалили все связанные файлы и конфигурации перед новой установкой. Например, удалите все остаточные файлы в ~/Library/Containers/com.docker.docker и ~/Library/Group Containers/group.com.docker/.
  5. Обновление до последней версии:

    • Убедитесь, что вы используете последнюю версию Docker Desktop, поскольку обновления могут содержать исправления ошибок. Проверьте наличие обновлений в настройках Docker Desktop или скачайте последнюю версию с официального сайта Docker.
  6. Обращение в поддержку:

    • Если ни одно из вышеперечисленных решений не помогло, рассмотрите возможность обращения в официальную поддержку Docker. Предоставьте им все детали проблемы, включая версии программного обеспечения и описание действий, которые вы уже предприняли.

Заключение

Проблемы с разрешением привилегированной маршрутизации портов в Docker Desktop могут быть вызваны несколькими факторами — от отсутствия процесса vmnetd до конфликтов с другими приложениями или недостаточными правами доступа. Выполнив предложенные шаги, вы сможете устранить текущую проблему и обеспечить функциональность Docker в вашей системе.

Если возникнут дополнительные вопросы, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...