MikroTik: failed to start docker container image error — Решение
- В логах RouterOS фиксируется ошибка:
container,error failed to start docker container: image error / extraction failed. - Контейнер переходит в статус
errorилиstoppedсразу после попытки запуска. - Не скачивается образ с Docker Hub или локального реестра (Registry).
- Нехватка дискового пространства на USB/SATA накопителе маршрутизатора.
1. Проверка архитектуры процессора (Arch Mismatch)
Маршрутизаторы MikroTik работают на различных архитектурах (ARM, ARM64, Tile, MMIPS, x86_64). Образ контейнера должен строго соответствовать архитектуре CPU вашего устройства (например, arm64v8/pihole для CCR2004 или amd64/alpine для CHR):
/system resource print2. Настройка внешнего хранилища и параметров Registry
Убедитесь, что корневая папка контейнера root-dir расположена на внешнем USB-диске (отформатированном в ext4), а не во внутренней флеш-памяти:
/container config
set registry-url=https://registry-1.docker.io tmpdir=usb1-part1/tmp
/container envs
add key=TZ name=pihole_envs value="Europe/Moscow"3. Создание виртуального интерфейса (veth) и монтирование
/interface veth
add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1
/interface bridge port
add bridge=bridge-containers interface=veth14. Загрузка и корректный запуск контейнера
/container
add remote-image=alpine:latest interface=veth1 \
root-dir=usb1-part1/alpine-root logging=yes
/container start [ find ] Частые вопросы (FAQ)
Почему нельзя запускать контейнеры во внутренней памяти маршрутизатора?
Встроенная Flash-память большинства роутеров RouterBOARD имеет размер от 16MB до 128MB и ограниченный ресурс циклов перезаписи (NAND endurance). Контейнеры быстро выведут чип памяти из строя.
Как активировать поддержку контейнеров в RouterOS v7?
Требуется установить дополнительный пакет 'container' из архива extra-packages и включить режим через физический доступ: /system device-mode update container=yes с последующей перезагрузкой и зажатием кнопки Reset.
Что делать, если Docker Hub возвращает ошибку 401 Unauthorized при скачивании?
Настройте публичный registry-url без авторизации: /container config set registry-url=https://registry-1.docker.io.
Поддерживает ли RouterOS многослойные оверлеи Docker (OverlayFS)?
Нет. RouterOS распаковывает образ в плоскую файловую систему в указанный каталог root-dir (RootFS).