Ответ
Да, запустится. Docker обеспечивает переносимость на уровне контейнера, но с важными техническими оговорками.
Как это работает: Контейнеры используют ядро хостовой ОС. Поскольку macOS не имеет нативного ядра Linux, Docker Desktop для Mac запускает легковесную Linux-виртуальную машину (VM), поверх которой работают контейнеры.
Ключевые условия и ограничения:
-
Совместимость архитектуры (CPU):
- Образ, собранный для
linux/amd64(Intel), будет работать на Intel Mac и на Apple Silicon (M1/M2) через эмуляцию Rosetta 2. - Для нативной производительности на Apple Silicon (ARM) нужен образ
linux/arm64. Многие официальные образы мультиархитектурные (multi-arch). - Можно явно указать платформу:
docker run --platform linux/amd64 my-image.
- Образ, собранный для
-
Отличия в производительности:
- Доступ к файловой системе (примонтированные тома) может быть медленнее из-за слоя трансляции между macOS и VM.
- Сетевой стек работает через виртуальный интерфейс.
Пример проверки архитектуры образа:
docker image inspect ubuntu:latest --format='{{.Architecture}}'
# Вывод: amd64 или arm64
Вывод: Контейнеры кроссплатформенны, но для оптимальной работы на Apple Silicon предпочтительны ARM-образы.