MikroTik

⌘K
  1. Home
  2. Docs
  3. MikroTik
  4. Container
  5. Cara Konfigurasi Container di MikroTik RouterOS v7

Cara Konfigurasi Container di MikroTik RouterOS v7

Fitur Container di MikroTik RouterOS v7 memungkinkan Anda menjalankan aplikasi berbasis Docker (seperti Pi-hole, AdGuard Home, Cloudflare Tunnel, hingga NGINX) langsung di dalam perangkat router tanpa butuh server tambahan. Sejak update RouterOS v7.22 (Maret 2026) dan v7.23 (Mei 2026), MikroTik membawa perubahan signifikan pada fitur container dengan menghadirkan ekosistem /app (App Store & Template YAML, Custom App), otomatisasi pull/update, dukungan swap memory, hingga fitur built-in Reverse Proxy.

Fitur utama di v7.23+:

  • App Store & Custom Apps: Deployment container kini bisa dilakukan via wizard /app setup tanpa harus mengkonfigurasi veth, bridge, NAT, dan port forwarding secara manual. Pengguna juga bisa membuat aplikasi custom dengan file YAML compose.
  • Container Repull: Perintah repull untuk memperbarui image container dari registry OCI secara otomatis (stop → download ulang → start).
  • network-outgoing-access=yes/no: Opsi untuk memblokir container agar tidak bisa menginisiasi traffic keluar (outbound).
  • Restart Command: Perintah /app restart untuk me-restart aplikasi.
  • Ratusan App Baru: Termasuk paperless-ngx, nextcloud, lorawan-stack, birdnet-go, portainer, dockge, uptime-kuma, zulip, cryptpad, dan banyak lagi.

Prasyarat Hardware & Software

  • RouterOS sudah menggunakan v7.23 stable
  • Arsitektur Hardware: Fitur container hanya suppot di perangkat MikroTik ber arsitektur ARM, ARM64, atau x86/CHR.
  • Package Container: container.npk harus terinstall.
  • Device Mode: Container mode harus diaktifkan via /system/device-mode/update container=yes dan dikonfirmasi dengan tombol reset atau cold reboot (perlu akses fisik ga bisa via remote).
  • Storage: Wajib menggunakan storage eksternal (USB, SSD, NVMe) yang diformat ext4 atau btrfs. Jangan gunakan internal NAND. Minimum direkomendasikan 100MB/s sequential read/write dan 10K random IOPS.
  • RAM: Minimal tersedia RAM untuk container tidak ada angka pasti, tergantung app; atur limit via /container/config/set memory-high=...

Alur Konfigurasi Container Manual

Cocok jika Anda ingin full manual konfigurasi veth, bridge, NAT, mount, environment variable, dan lifecycle container. Cara manual ini jadikan referensi default, misal contoh dalam dokumentasi ini saya contoh kan deploy Web Server Nginx.

Aktifkan Container Mode.

Pasang package container yang sesuai arsitektur, kemudian aktifkan mode container.

/system/device-mode/update container=yes

# Router akan menampilkan pesan konfirmasi
update: turn off power in 4m49s to activate changes 

Matikan perangkat secara fisik dengan mencabut lalu memasang kembali kabel daya. Setelah menyala kembali, periksa statusnya dengan /system/device-mode/print dan pastikan flag container: yes sudah aktif.

Konfigurasi Registry & Storage

/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/tmp

Buat Network Virtual (veth, Bridge & NAT)

Buat interface virtual veth

/interface/veth/add name=veth1-nginx address=172.17.0.2/16 gateway=172.17.0.1

name=veth1-nginx adalah nama interface virtual, address adalah IP di sisi container, dan gateway adalah IP bridge/router yang dipakai container untuk akses keluar.

Buat bridge untuk container dan tambahkan veth.

/interface/bridge/add name=bridge2-docker
/ip/address/add address=172.17.0.1/16 interface=bridge2-docker
/interface/bridge/port add bridge=bridge2-docker interface=veth1-nginx

Bridge ini menjadi “switch” virtual untuk container, sedangkan IP pada bridge menjadi gateway jaringan container.

Tambahkan NAT Untuk Traffic Keluar

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/16

src-address membatasi NAT hanya untuk subnet container, sementara masquerade memungkinkan container terhubung ke internet atau jaringan lain melalui router.

Environment Variables & Mounts

/container/mounts/add list=MOUNT_NGINX src=disk1/container/nginx/html dst=/usr/share/nginx/html

/container/envs/add list=ENV_NGINX key=TZ value="Asia/Jakarta"

Buat mount/persistent storage untuk root folder public-html dan Environment Variables.

Deploy Container

/container/add remote-image=nginx:latest interface=veth1-nginx root-dir=disk1/container/nginx mountlists=MOUNT_NGINX envlist=ENV_NGINX name=nginx logging=yes

Tunggu status stopped, lalu start:

/container/start nginx

Port Forwarding

/ip/firewall/nat/add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=8080 protocol=tcp to-addresses=172.17.0.2 to-ports=80

Rule ini meneruskan akses ke port 8080 router menuju service container di port 80.

Cara App / Wizard (v7.22+)

Mulai v7.22, MikroTik memperkenalkan /app sebagai katalog aplikasi seperti Pi-hole, AdGuard Home, caddy, cloudflared, atau monitoring apps yang bisa dideploy otomatis, termasuk konfigurasi RouterOS yang relevan seperti firewall rule dan NAT otomatis.

 Jalankan Setup Wizard

/app setup

atau melalui Winbox:

  • Masuk menu App -> Setup (akan dipandu Wizard)
    • Pilih Storage — pilih storage eksternal yang sudah diformat ext4 atau btrfs (wajib storage external).
    • Pilih Interface Bridge — misalnya bridge2-container, nanti /app otomatis membuat veth -> menambahkan ke bridge2-container, dan menambahkan rules di NAT.

Install Aplikasi dari Katalog

/app print
/app enable pihole
/app print detail where name=pihole

RouterOS akan otomatis -> Download & ekstrak image -> Buat veth dan atur jaringan -> Buat firewall NAT/port forwarding -> Generate URL akses web UI.

Parameter yang bisa disesuaikan di konfigurasi aplikasi (umum):

Use HTTPS: membuat URL akses web dashboard aplikasi menggunakan HTTPS, bukan HTTP. Opsi ini berfungsi jika perangkat support /ip cloud, nanti mikrotik akan mencoba generate otomatis Certificate SSL seperti contoh proses di dokumentasi -> [Cara Mendapatkan Certificate SSL Let’s Encrypt di MikroTik Dengan DNS-Challenge]. Jadi nanti kita akses Web dashboard aplikasi menggunakan format https://123456789abc.sn.mynetname.net di browser tanpa HTTPS Warning (jgn lupa setting DNS Split agar user bisa akses dari jaringan LAN)

Network Outgoing Access: Parameter network-outgoing-access=yes/no mengatur apakah container app boleh keluar ke internet atau jaringan lain. Jika diset no, RouterOS akan membuat mangle drop rule sehingga trafik outbound dari app itu diblokir.

Auto Update: Parameter auto-update=yes/no mengaktifkan update otomatis saat ada versi image container baru.

Custom App (YAML Compose)

Mulai v7.22, Anda bisa membuat aplikasi custom dengan YAML compose Winbox -> App -> klik [+] (Add New) -> tab YAML -> paste YAML ini ke dalam kotak YAML:

name: Nginx
descr: Nginx Web Server
page: https://hub.docker.com/_/nginx.html
category: development
default-credential: web setup

services:
  nginx:
    image: nginx:latest
    ports:
      - 8080:80:web
    environment:
      TZ: Asia/Jakarta
volumes:
  - /disk1/container/nginx/html:/usr/share/nginx/html

Label web membantu UI mengenali port web admin.

Container Networking

Mode Internal (Default)

Container berada di subnet terpisah dengan veth interface. Nanti otomatis membuat NAT + dst-nat untuk akses dari luar.

Mode External Bridge

Container mendapat IP di subnet yang sama dengan LAN (misal: 192.168.88.2/24). veth langsung ditambahkan ke bridge-lan tanpa NAT dan semua port container ter expose ke jaringan lokal. Pada mode external bridge, /app umumnya membutuhkan DHCP Server aktif di interface bridge yang khusus container untuk IP otomatis VETH yang sudah didefinisikan di /app/settings.

Best Practices

Set limit memory — Gunakan /container/config/set memory-high=200M atau memory-max agar container runaway tidak membuat router hang.
Gunakan veth terpisah untuk isolasi — Container sebaiknya diisolasi di bridge/veth tersendiri.
Test di CHR dulu — Sebelum deploy ke hardware produksi, uji image dan konfigurasi di CHR virtual.
Perhatikan arsitektur CPU — Pastikan image sesuai (arm32/arm64/x86)

FAQ (Frequently Asked Questions)

Apakah semua perangkat MikroTik bisa pakai container?

Ngga, Fitur container hanya suppot di perangkat MikroTik ber arsitektur ARM, ARM64, atau x86/CHR.

Apakah aman menggunakan storage bawaan (NAND/Flash) MikroTik?

Sangat tidak direkomendasikan dan TIDAK BISA jika pakai App. Container membaca dan menulis data secara terus-menerus. Menggunakan flash internal akan memperpendek umur storage router Anda secara drastis.

Bagaimana cara update image container ke versi terbaru?

Di v7.22+, fitur repull otomatis dapat dikonfigurasi. Di terminal (CLI) -> jalankan /container/stop [find] -> /container/repull [find] -> /container/start [find].

Lebih baik pakai /container atau /app?

Buat Suhu yang mao ribet pakai /container. Buat yang ga mao ribet, /app jauh lebih praktis, apalagi setelah v7.22.

Kesimpulan

Untuk RouterOS v7.22 ke atas, pilihan terbaik adalah menggunakan /app sebagai metode utama menggunakan container di mikrotik, sementara /container tetap berperan penting untuk kontrol yang lebih detail, troubleshooting, dan skenario kustom.

Tags ,
guest

0 Comments
Oldest
Newest Most Voted