routeros-container
在 MikroTik RouterOS 上管理容器
在 MikroTik RouterOS 上运行容器需要了解其自定义的 OCI 实现,这与标准 Docker 有显著差异。本技能为 RouterOS 设备上的容器设置、网络配置、镜像管理和生命周期操作提供逐步指导。
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "routeros-container". 为 IP 为 172.17.0.2 的容器创建 VETH 接口和桥接
Erwartetes Ergebnis:
1. 创建 VETH 对:/interface/veth/add name=veth-myapp address=172.17.0.2/24 gateway=172.17.0.1
2. 创建桥接:/interface/bridge/add name=containers
3. 将 VETH 添加到桥接:/interface/bridge/port/add bridge=containers interface=veth-myapp
4. 分配网关 IP:/ip/address/add address=172.17.0.1/24 interface=containers
Verwendung von "routeros-container". 启动名为 myapp 的容器并检查其状态
Erwartetes Ergebnis:
1. 启动:/container/start [find tag~"myapp"]
2. 检查状态:/container/print
3. 查看日志:/log/print where topics~"container"
4. 对于 REST API:GET /rest/container 返回容器列表,其中 .running 字段为字符串 "true"/"false"
Sicherheitsaudit
SicherDocumentation-only skill containing RouterOS container subsystem reference material. Static analysis flagged 171 patterns (external commands, network access, filesystem), but evaluation confirms all are false positives: CLI command paths, network examples, Base64 auth encoding, and relative documentation links are all legitimate documentation patterns. No executable code, no malicious intent, no attack patterns detected.
Risikofaktoren
⚙️ Externe Befehle (3)
🌐 Netzwerkzugriff (3)
📁 Dateisystemzugriff (1)
Qualitätsbewertung
Was du bauen kannst
在 RouterOS 容器中部署 Pi-hole
设置一个 Pi-hole 广告拦截容器,配置 VETH 网络、外部磁盘持久化存储,以及 Web 界面密码的正确环境变量。
通过 L2 桥接容器运行 netinstall 服务
配置具有二层桥接访问权限的容器,以在与物理设备相同的网络段上提供 BOOTP/TFTP netinstall 服务。
通过 REST API 自动化容器管理
使用 RouterOS REST API 以编程方式列出、启动、停止和删除容器,并对异步操作进行正确的轮询处理。
Probiere diese Prompts
我有一台运行 RouterOS 7.x 的 MikroTik 路由器。请帮我启用容器子系统并设置基本的 VETH 网络,以便运行我的第一个容器。
我想在 RouterOS 设备上从 Docker Hub 拉取一个 Alpine 容器,为其分配 IP 为 172.17.0.2 的 VETH 接口,并设置环境变量。请逐步指导我完成。
我需要为 RouterOS 构建一个符合其要求的自定义 OCI 镜像:单层、无 gzip 压缩、Docker v1 manifest 格式。然后将其作为 tar 文件导入,并配置内联环境变量和挂载。
编写一个 TypeScript 脚本,使用 RouterOS REST API 来列出容器、按 ID 启动一个容器、检查其运行状态(注意字符串布尔值),并在停止后删除操作中实现正确的重试逻辑。
Bewährte Verfahren
- 始终将容器卷放在外部磁盘存储上,不要放在内部闪存存储上
- 在 RouterOS 7.21+ 上使用 env= 和 mount= 内联属性,以创建更简单的自包含容器定义
- 使用 REST API 时,请记住 .running 字段返回的是字符串 "true"/"false",而非布尔值,并且 DELETE 操作要求容器先完全停止
Vermeiden
- 在 RouterOS 7.18+ 上使用 /system/reboot 而不是 /system/package/apply-changes,这会导致已上传的软件包被丢弃
- 尝试运行 RouterOS 无法加载的多层或 gzip 压缩的 tar 镜像
- 在需要二层桥接访问(如 netinstall)时尝试使用 /app YAML 系统