Запустите контейнер linux / arm через qemu binfmt_misc в Docker LCOW - PullRequest
2 голосов
/ 28 марта 2019

Я выпускаю двоичные файлы ARM моего программного обеспечения, запустив цепочку инструментов компилятора на эмулированной машине ARM.

Linux может запускать иностранные двоичные файлы, регистрируя qemu-user-static в /proc/sys/fs/binfmt_misc/. Это позволяет запускать образ Docker ARM32 или ARM64 на хосте Docker x86_64 следующим образом:

Приготовление:

# Apply `binfmt_misc` changes on host OS
docker run --rm --privileged multiarch/qemu-user-static:register --reset

Dockerfile:

# Get x86_64 qemu-user-static binaries
FROM debian:buster
RUN apt-get update && apt-get install -qqy qemu-user-static

# Get cross-arch rootfs
FROM arm64v8/golang:latest
COPY --from=0 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static

Это прекрасно работает в Docker для Linux.

Он также отлично работает в Docker для Windows при использовании контейнеров Linux (MobyLinuxVM)

Это не не работает при использовании Docker для Windows при использовании контейнеров Windows (режим LCOW / hcsdiag). Я хочу использовать этот режим, потому что он может работать как с контейнерами Linux, так и с Windows. Но невозможно изменить файл binfmt_misc с помощью флага --privileged:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Windows does not support privileged mode.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

В текущих (1803-х) версиях Hyper-V HCS используется настоящее ядро ​​Linux, а не WSL. Я предполагаю, что должна быть возможность изменить директорию хоста binfmt_misc.

  • Как можно запустить образ контейнера Linux / ARM на хосте Docker Windows / x86_64 с LCOW?

  • Можно ли изменить образ хоста Linux, используемый LCOW?

  • Есть ли другой способ получить унифицированный демон Docker, который может запускать образы Windows / x86_64, Linux / x86_64 и Linux / ARM Docker?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...