После выпуска 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