Tutorial
RouterOS Containers: MikroTik'te Docker
MikroTik RouterOS v7'de Docker tarzı container çalıştırın: container modunu açın, veth ağı ve depolama kurun, sonra dağıtıp ölçekte yönetin.
Özet MikroTik RouterOS v7, Docker uyumlu container’ları doğrudan yönlendirici üzerinde çalıştırabilir; böylece DNS filtreleme, izleme ajanları ve küçük ağ hizmetleri ayrı bir kutu yerine yönlendirme düzleminin yanında yer alır. Bu kılavuz donanım ve mimari gereksinimlerini, container device-mode’u güvenli şekilde etkinleştirmeyi, NAT ile veth ve bridge ağı kurmayı, ilk container’ınızı dağıtmayı ve container’ları bir filo genelinde yönetmeyi kapsar. RouterOS 7.23 (Mayıs 2026) kullanıma hazır container uygulamaları kataloğunu genişleterek bunu hem ISP’ler hem de laboratuvar kurucuları için pratik bir seçenek haline getirdi.
MikroTik RouterOS’ta Containers Nedir?
Containers, MikroTik RouterOS’ta MikroTik’in Linux container uygulamasıdır ve bir RouterOS v7 cihazının izole, Docker uyumlu uygulama image’lerini doğrudan yönlendirici üzerinde çalıştırmasını sağlar. Docker Hub, GCR, Quay ve diğer registry’lerden gelen image’lerle çalışırlar ve RouterOS docker komutu yerine kendi CLI sözdizimini kullansa da temel davranış aynıdır — bir image çekin, ona bir ağ verin, depolama bağlayın ve çalıştırın. (MikroTik belgeleri)
Bir ISP veya laboratuvar için bu, ağa yakın küçük hizmetlerin yönlendirme düzlemiyle birlikte konumlandırılabileceği anlamına gelir: bir Pi-hole veya AdGuard DNS filtresi, bir izleme ajanı, bir reverse proxy veya bir IoT bridge. 25 Mayıs 2026’daki kararlı RouterOS 7.23 sürümü, kullanıma hazır uzun bir uygulama listesi ekledi — paperless-ngx, nextcloud, lorawan-stack, birdnet-go ve portainer ile dockge gibi Docker yönetim ön yüzleri dahil — bunun yanında bir container’ı giden trafik başlatmaktan engellemek için yeni bir network-outgoing-access anahtarı sundu. (RouterOS 7.23 changelog)
Gereksinimler ve Donanım
container paketi arm, arm64 ve x86 mimarileriyle uyumludur ve her şeyden önce kurulmalıdır. Bir uzak image çekmek çok fazla boş alan gerektirir, bu yüzden MikroTik cihazın dahili flash’ı yerine harici depolama önerir. (MikroTik belgeleri)
USB, SATA veya NVMe üzerinde, RouterOS’un desteklediği bir dosya sistemiyle biçimlendirilmiş harici medya planlayın. MikroTik en az 100 MB/s ardışık çıktı ve 10K rastgele IOPS yapabilen bir disk önerir — daha yavaş diskler image çıkarmayı acı verici şekilde uzatır. container birimlerini, küçük olan ve container yazma kalıpları altında aşınan yerleşik depolamaya yerleştirmekten kaçının. Çok sınırlı flash’a sahip cihazlar uzaktan çekmek yerine bağlı diskteki önceden oluşturulmuş image’leri kullanmalıdır.
Container Device-Mode’u Güvenli Şekilde Etkinleştirin
Container varsayılan olarak devre dışıdır ve haklı nedenlerle açmak için fiziksel erişim gerektirir. Özelliği şununla etkinleştirin:
/system/device-mode/update container=yesRouterOS daha sonra reset düğmesine basarak veya soğuk yeniden başlatma ile onaylamanızı bekler. Bu fiziksel onay kapısı kasıtlı bir güvenlik denetimidir: container modu açıldıktan sonra container’lar uzaktan eklenebilir, başlatılabilir ve kaldırılabilir ve kötü amaçlı bir image yönlendiricide bir dayanak noktası haline gelebilir. MikroTik bu konuda açık sözlüdür — RouterOS cihazınız ele geçirilirse container’lar kötü amaçlı yazılım kurmayı çok kolaylaştırır ve üçüncü taraf image’leri için güvenlik garantisi yoktur.
container barındıran yönlendiriciyi, üzerinde çalıştırdığınız en az güvenilen image kadar güvenli sayın. Yalnızca güvendiğiniz image’leri dağıtın, cihazı güvenlik duvarı arkasında tutun ve bunu üretimde etkinleştirmeden önce device-mode güvenlik operasyonları kılavuzumuzu inceleyin.
Container Ağını Kurun
Container’ların internete ulaşmak için bir sanal interface, bir bridge ve NAT’a ihtiyacı vardır. Aşağıdaki desen Docker’daki “bridge” ağını yansıtır. Önce bir veth interface ve onun gateway adresini paylaşan bir bridge oluşturun:
/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1/interface/bridge/add name=containers/ip/address/add address=172.17.0.1/24 interface=containers/interface/bridge/port add bridge=containers interface=veth1Bir veth birçok container’a hizmet verebilir ve ek veth/bridge çiftleri oluşturmak container gruplarını birbirinden izole etmenizi sağlar. RouterOS bridging’e yeniyseniz bridge yapılandırma eğitimimiz temel modeli açıklar. Ardından, giden container trafiğinin çevrilmesi için bir masquerade kuralı ekleyin — tam tablo için NAT yapılandırma kılavuzuna bakın:
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24İlk Container’ınızı Dağıtın
registry’yi ve geçici çıkarma dizinini harici diskinize yönlendirin, ardından image’i ekleyin. Aşağıdaki Pi-hole örneği MikroTik belgelerindeki standart örnektir:
/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/tmp/container/add remote-image=pihole/pihole interface=veth1 root-dir=disk1/images/pihole name=pihole logging=yescontainer’ı eklemek indirme ve çıkarmayı başlatır ama çalıştırmaz. İlerlemeyi /container/print ile kontrol edin ve status=stopped olana kadar bekleyin, ardından başlatın:
/container/start piholeSon olarak, yönlendiriciden veth adresine bir port yönlendirerek hizmeti yayınlayın:
/ip firewall nat add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=80 protocol=tcp to-addresses=172.17.0.2 to-ports=80Pi-hole artık yönlendiricinin LAN IP’sinde yanıt verir. DNS filtrelemeyi bu şekilde çalıştırmak RouterOS’un yerel engelleme listelerine bir alternatiftir — container’sız yolu tercih ederseniz RouterOS adlist eğitimimize bakın.
Containers’ı Bir Filo Genelinde Yönetin
Bir yönlendiricide tek bir container kolaydır. Bir ISP için asıl operasyonel soru tutarlılıktır: her cihazda aynı image, aynı veth ve NAT şeması, aynı depolama düzeni ve aynı start-on-boot ve bellek sınırları. RouterOS size temel araçları verir — start-on-boot=yes yeniden başlatmalardan sağ çıkar ve memory-high veya memory-max, container başına RAM’i sınırlar; böylece kontrolden çıkan bir hizmet yönlendirme düzlemini aç bırakamaz:
/container/config/set memory-high=200M/container/set pihole start-on-boot=yesZor kısım, bunu onlarca veya yüzlerce uzak yönlendiricide aynı şekilde yapmak ve ardından her birinin yeniden başlatmadan sonra gerçekten geri geldiğini kanıtlamaktır — özellikle cihaz CGNAT arkasındayken ve genel IP’sine kolayca ulaşamadığınızda.
İpuçları
- Her container birimini harici diskte tutun; asla dahili NAND’da değil.
- Güvenilmeyen container’ları güvenilenlerden izole etmek için ayrı bir veth/bridge çifti kullanın.
- Yönlendiricinin yanıt verir kalması için tam güvenmediğiniz her şeye
memory-maxayarlayın. - Üretime dokunmadan önce temiz bir test ortamı için, fiziksel yönlendiricilere dağıtmadan önce aynı image’leri sanallaştırılmış bir CHR örneğinde çalıştırın.
Sonraki Adımı Atın
Container’lar bir MikroTik yönlendiriciyi minik bir uygulama barındırıcısına dönüştürür, ancak böyle barındırıcılardan oluşan bir filo orkestrasyon gerektirir. MKController, RouterOS yapılandırmasını merkezi olarak şablonlar, envanterinizdeki her cihaza uygular ve sapmayı izler; böylece hangi yönlendiricinin farklılaştığını görebilirsiniz — ve NATCloud aracılığıyla CGNAT arkasındaki cihazlara ulaşarak bir container’ın bakımdan sonra yeniden başladığını doğrular. Bu, bir container’ı elle yapılandırmak ile onları tüm bir ISP ağı genelinde güvenilir şekilde işletmek arasındaki boşluğu kapatır.