- 22, Oct 2024
- #1
У меня есть служба, работающая в Docker, которая прослушивает доменное сокет Unix, и клиент, работающий на хосте Docker (Mac). Клиент получает ошибку «Соединение отклонено» при попытке подключения.
Я сопоставляю том, когда запускаю сервер (docker run -it -v /localpath:/var/run myservice), и я прекрасно вижу файл сокета, созданный в локальном каталоге.
Это работает нормально, если я также запускаю клиент в Docker (другой экземпляр контейнера) или запускаю оба локально. Но если я запущу одну сторону в Docker, а другую локально, произойдет сбой (я пробовал в обоих направлениях). Я думал, что это может быть несоответствие uid/gid, но это выглядит нормально, и если я заставлю их отличаться, я получу ошибку отказа в доступе.
Мое приложение использует UnixDomainSocketAddress Java 16, но я также протестировал скрипт Python (с использованием сокета AF_UNIX) и увидел ту же проблему, так что это похоже на Docker. Есть идеи?
#докер