Навыки routeros-container
📦

routeros-container

Безопасно

Управление контейнерами на MikroTik RouterOS

Запуск контейнеров на MikroTik RouterOS требует понимания его пользовательской реализации OCI, которая существенно отличается от стандартного Docker. Этот навык предоставляет пошаговое руководство по настройке контейнеров, сетевых подключений, управлению образами и операциям жизненного цикла на устройствах RouterOS.

Поддерживает: Claude Codex Code(CC)
🥉 72 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «routeros-container». Create a VETH interface and bridge for a container with IP 172.17.0.2

Ожидаемый результат:

1. Create VETH pair: /interface/veth/add name=veth-myapp address=172.17.0.2/24 gateway=172.17.0.1
2. Create bridge: /interface/bridge/add name=containers
3. Add VETH to bridge: /interface/bridge/port/add bridge=containers interface=veth-myapp
4. Assign gateway IP: /ip/address/add address=172.17.0.1/24 interface=containers

Использование «routeros-container». Start a container named myapp and check its status

Ожидаемый результат:

1. Start: /container/start [find tag~"myapp"]
2. Check status: /container/print
3. View logs: /log/print where topics~"container"
4. For REST API: GET /rest/container returns container list with .running field (string "true"/"false")

Аудит безопасности

Безопасно
v2 • 4/16/2026

This skill is a Markdown documentation file providing instructions and examples for the MikroTik RouterOS /container subsystem. The static scanner flagged 171 patterns, but all are false positives. The 'external_commands' detections match RouterOS CLI syntax inside Markdown code fences, not actual shell execution. The 'network' detections reference example URLs and IPs in documentation snippets. The 'weak cryptographic algorithm' and 'path traversal' findings have no basis in the content. No executable code exists in this file - it is purely instructional documentation for network administrators.

1
Просканировано файлов
348
Проанализировано строк
0
находки
2
Всего аудитов
Проблем безопасности не найдено

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
32
Сообщество
100
Безопасность
100
Соответствие спецификации

Что вы можете построить

Развертывание Pi-hole в контейнере RouterOS

Настройка контейнера для блокировки рекламы Pi-hole с сетевым подключением VETH, постоянным хранилищем на внешнем диске и правильными переменными окружения для веб-интерфейса.

Запуск службы netinstall через контейнер с мостом L2

Настройка контейнера с доступом к мосту уровня 2 для предоставления служб BOOTP/TFTP netinstall в том же сегменте сети, что и физические устройства.

Автоматизация управления контейнерами через REST API

Использование REST API RouterOS для программного перечисления, запуска, остановки и удаления контейнеров с правильным опросом состояния для асинхронных операций.

Попробуйте эти промпты

Начинающий: Включить контейнеры на моем маршрутизаторе
У меня есть маршрутизатор MikroTik с RouterOS 7.x. Помогите мне включить подсистему контейнеров и настроить базовую сеть VETH, чтобы я мог запустить свой первый контейнер.
Средний: Загрузить и запустить контейнер из Docker Hub
Я хочу загрузить контейнер Alpine из Docker Hub на мое устройство RouterOS, назначить ему интерфейс VETH с IP 172.17.0.2 и установить переменные окружения. Проведите меня через эти шаги.
Продвинутый: Собрать и импортировать пользовательский однослойный образ
Мне нужно собрать пользовательский OCI-образ для RouterOS, соответствующий его требованиям: один слой, без сжатия gzip, формат манифеста Docker v1. Затем импортировать его как tar-файл и настроить встроенные переменные окружения и монтирования.
Эксперт: Автоматизация жизненного цикла контейнеров через REST API
Напишите TypeScript-скрипт, который использует REST API RouterOS для перечисления контейнеров, запуска одного по ID, проверки его статуса выполнения (с учетом строковых булевых значений) и удаления с правильной логикой повторных попыток для последовательности остановки и удаления.

Лучшие практики

  • Всегда размещайте тома контейнеров на внешнем дисковом хранилище, никогда на внутренней флеш-памяти
  • Используйте встроенные свойства env= и mount= в RouterOS 7.21+ для более простых самодостаточных определений контейнеров
  • При использовании REST API помните, что поле .running возвращает строки "true"/"false", а не булевы значения, а DELETE требует полной остановки контейнера

Избегать

  • Использование /system/reboot вместо /system/package/apply-changes в RouterOS 7.18+, что приведет к удалению загруженных пакетов
  • Попытка запустить многослойные или сжатые gzip tar-образы, которые RouterOS не может загрузить
  • Попытка использовать систему /app YAML, когда требуется доступ к мосту уровня 2, например, для netinstall

Часто задаваемые вопросы

Какая версия RouterOS нужна для поддержки контейнеров?
RouterOS 7.x с установленным дополнительным пакетом container. Функциональность контейнеров варьируется в зависимости от версии, с существенными изменениями между 7.20 и 7.21 для переменных окружения и синтаксиса монтирования.
Почему RouterOS требует режим устройства для контейнеров?
Режим устройства — это функция безопасности RouterOS, которая контролирует доступ к нескольким функциям, включая контейнеры. Для предотвращения удаленной активации требуется физическое подтверждение через кнопку сброса или перезагрузку.
Могу ли я использовать стандартные образы Docker на RouterOS?
Загрузка из реестров Docker Hub работает напрямую. Локальный импорт tar-файлов должен быть однослойным, несжатым и использовать формат манифеста Docker v1. Многослойные и сжатые gzip образы не поддерживаются.
В чем разница между встроенной и именованной конфигурацией env/mount?
Встроенный формат (env= и mount= в /container/add) — это современный подход 7.21+, который сохраняет контейнеры самодостаточными. Именованные списки требуют отдельных объектов /container/envs/add и /container/mounts/add и работают в большем количестве версий.
Как программно управлять контейнерами?
Используйте REST API RouterOS по адресу /rest/container. Основные конечные точки включают GET для перечисления, POST в /container/start или /container/stop и DELETE для удаления. Поле .running является строкой, а не булевым значением.
Когда следует использовать /app YAML вместо ручной настройки контейнеров?
Используйте /app YAML (RouterOS 7.22+) для стандартных развертываний с перенаправлением портов. Используйте ручную настройку VETH/моста, когда вам нужен доступ на уровне 2, например, для netinstall, ретрансляции DHCP или прямого сетевого доступа.

Сведения для разработчиков

Автор

tikoci

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md