routeros-container
在 MikroTik RouterOS 上管理容器
在 MikroTik RouterOS 上运行容器需要了解其自定义的 OCI 实现,这与标准 Docker 有显著差异。本技能为 RouterOS 设备上的容器设置、网络配置、镜像管理和生命周期操作提供逐步指导。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“routeros-container”。 为 IP 为 172.17.0.2 的容器创建 VETH 接口和桥接
预期结果:
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
正在使用“routeros-container”。 启动名为 myapp 的容器并检查其状态
预期结果:
1. 启动:/container/start [find tag~"myapp"]
2. 检查状态:/container/print
3. 查看日志:/log/print where topics~"container"
4. 对于 REST API:GET /rest/container 返回容器列表,其中 .running 字段为字符串 "true"/"false"
安全审计
安全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.
质量评分
你能构建什么
在 RouterOS 容器中部署 Pi-hole
设置一个 Pi-hole 广告拦截容器,配置 VETH 网络、外部磁盘持久化存储,以及 Web 界面密码的正确环境变量。
通过 L2 桥接容器运行 netinstall 服务
配置具有二层桥接访问权限的容器,以在与物理设备相同的网络段上提供 BOOTP/TFTP netinstall 服务。
通过 REST API 自动化容器管理
使用 RouterOS REST API 以编程方式列出、启动、停止和删除容器,并对异步操作进行正确的轮询处理。
试试这些提示
我有一台运行 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 启动一个容器、检查其运行状态(注意字符串布尔值),并在停止后删除操作中实现正确的重试逻辑。
最佳实践
- 始终将容器卷放在外部磁盘存储上,不要放在内部闪存存储上
- 在 RouterOS 7.21+ 上使用 env= 和 mount= 内联属性,以创建更简单的自包含容器定义
- 使用 REST API 时,请记住 .running 字段返回的是字符串 "true"/"false",而非布尔值,并且 DELETE 操作要求容器先完全停止
避免
- 在 RouterOS 7.18+ 上使用 /system/reboot 而不是 /system/package/apply-changes,这会导致已上传的软件包被丢弃
- 尝试运行 RouterOS 无法加载的多层或 gzip 压缩的 tar 镜像
- 在需要二层桥接访问(如 netinstall)时尝试使用 /app YAML 系统
常见问题
容器支持需要哪个 RouterOS 版本?
为什么 RouterOS 的容器需要设备模式?
我可以在 RouterOS 上使用标准 Docker 镜像吗?
内联和命名的 env/mount 配置有什么区别?
如何以编程方式管理容器?
什么时候应该使用 /app YAML 而不是手动容器设置?
开发者详情
文件结构
📄 SKILL.md