routeros-container
MikroTik RouterOS에서 컨테이너 관리
MikroTik RouterOS에서 컨테이너를 실행하려면 표준 Docker와 크게 다른 자체 OCI 구현을 이해해야 합니다. 이 스킬은 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 배포
VETH 네트워킹, 외부 디스크의 영구 스토리지, 웹 인터페이스 암호를 위한 적절한 환경 변수를 사용하여 Pi-hole 광고 차단 컨테이너를 설정합니다.
L2 브리지 컨테이너를 통해 netinstall 서비스 실행
물리적 장치와 동일한 네트워크 세그먼트에서 BOOTP/TFTP netinstall 서비스를 제공하기 위해 레이어 2 브리지 액세스가 있는 컨테이너를 구성합니다.
REST API를 통한 컨테이너 관리 자동화
RouterOS REST API를 사용하여 컨테이너를 프로그래매틱하게 나열, 시작, 중지, 삭제하고 비동기 작업에 대한 적절한 폴링을 수행합니다.
이 프롬프트를 사용해 보세요
RouterOS 7.x가 실행되는 MikroTik 라우터가 있습니다. 첫 번째 컨테이너를 실행할 수 있도록 컨테이너 서브시스템을 활성화하고 기본 VETH 네트워킹을 설정하는 것을 도와주세요.
RouterOS 기기에서 Docker Hub를 통해 Alpine 컨테이너를 가져오고, IP가 172.17.0.2인 VETH 인터페이스를 할당하고, 환경 변수를 설정하고 싶습니다. 단계별로 안내해 주세요.
RouterOS 요구사항(단일 레이어, gzip 압축 없음, Docker v1 manifest 형식)을 충족하는 커스텀 OCI 이미지를 빌드해야 합니다. 그런 다음 tar 파일로 가져오고 인라인 환경 변수 및 마운트를 구성해야 합니다.
RouterOS REST API를 사용하여 컨테이너를 목록화하고, ID로 시작하고, 실행 상태를 확인하며(문자열 불리언 값 고려), stop-then-delete 시퀀스에 대한 적절한 재시도 논리로 삭제하는 TypeScript 스크립트를 작성하세요.
모범 사례
- 컨테이너 볼륨은 항상 외부 디스크 스토리지에 배치하고, 내부 플래시 스토리지에는 배치하지 마십시오
- RouterOS 7.21+에서는 더 간단한 자체 포함 컨테이너 정의를 위해 env= 및 mount= 속성을 사용하십시오
- REST API를 사용할 때 .running 필드는 불리언 값이 아닌 문자열 "true"/"false"를 반환하며, DELETE는 컨테이너가 완전히 중지된 후에만 수행할 수 있다는 점을 기억하십시오
피하기
- RouterOS 7.18+에서 /system/reboot 대신 /system/package/apply-changes를 사용하지 않으면 업로드된 패키지가 삭제될 수 있음
- RouterOS가 로드할 수 없는 다중 레이어 또는 gzip 압축 tar 이미지 사용 시도
- netinstall과 같이 레이어 2 브리지 액세스가 필요할 때 /app YAML 시스템 사용 시도