Как запустить образ RabbitMQ linux Docker с помощью контейнеров Windows?

После выпуска Docker для Windows в октябре они добавили ядро ​​Linux в контейнеры Windows, чтобы запускать контейнеры Linux параллельно с контейнерами Windows. Мне трудно заставить его работать. Следующее взято из журнала изменений текущей версии Docker Edge:

Контейнеры LCOW теперь можно запускать рядом с контейнерами Windows (в Windows RS3 сборки 16299 и более поздних версиях). Используйте --platform=linux в режиме контейнера Windows для запуска контейнеров Linux в Windows. Обратите внимание, что LCOW все еще экспериментальный, для него требуется опция experimental демона.

Я использую немодифицированную версию RabbitMQ образа.

При выполнении запуска докера:

docker run -d --platform=linux --name rabbit1 -e RABBITMQ_ERLANG_COOKIE='SWQOKODSQALRPCLNMEQG' -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management

Я не получаю никаких ошибок, контейнер останавливается, как только он загружается, и в журнале содержится следующая ошибка:

chmod: changing permissions of '/var/lib/rabbitmq/.erlang.cookie': Operation not permitted

Удаление аргумента cookie запускает его на несколько секунд, пока это не появится в журнале контейнеров:

09:49:48.020 [error] Failed to change mode: eperm
09:49:50.190 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only

Что по сути является той же ошибкой. Я попытался добавить это в запуск докера , но файл cookie создается в процессе запуска RabbitMQ.

** Он отлично работает с Docker в режиме контейнера Linux.

Окружающая среда:

  • Windows 10 версии 1709
  • Windows PowerShell работает от имени администратора
  • Докер версии 18.02.0-ce-rc1, сборка 5e1d90a

person Wijnand    schedule 01.02.2018    source источник


Ответы (1)


Существует известная проблема с RabbitMQ на LCOW, она указана в документации: https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers#known-app-issues

Согласно Майкрософт:

Привязать монтируемые тома с помощью docker run -v ... сохраняет файлы в файловой системе Windows NTFS, поэтому для операций POSIX требуется некоторый перевод. Некоторые операции с файловой системой в настоящее время реализованы частично или не реализованы, что может привести к несовместимости некоторых приложений.

person Giovanni Bassi    schedule 01.03.2018
comment
Меня действительно интересует полезность LCOW без chown и chmod — их использует множество контейнеров. Снова переключаемся на контейнеры Linux... - person Cocowalla; 04.05.2018
comment
вы конечно... - person Cocowalla; 04.05.2018
comment
Конечно, но вы должна быть установлена ​​последняя версия Windows 10, стабильной является 17134.1. - person Giovanni Bassi; 05.05.2018
comment
Это инсайдерская сборка, а не стабильная сборка. Кроме того, статья, похоже, посвящена WSL, а не файловой системе 9p, которую LCOW использует для совместного использования каталогов хоста с контейнерами — означает ли это, что она также исправлена ​​​​для 9p, я не знаю. - person Cocowalla; 05.05.2018
comment
Я так и сказал, тот билд был 17063, а текущий 17134.1, что больше. Я только что проверил, и это работает. - person Giovanni Bassi; 07.05.2018
comment
Ах, извините, я читал, что у вас есть последняя стабильная версия. Но вопрос, работают ли эти команды из контейнера LCOW с бинд смонтированным томом (т.е. он фиксированный для 9p)? - person Cocowalla; 07.05.2018
comment
Работает на 17134.1 aka Windows 10 1803... имеет ту же проблему, что и OP... Контейнер умирает через несколько секунд, потому что не имеет монопольного доступа к файлу cookie - person Kralizek; 07.05.2018