Ubuntu Server Üzerine Docker ile NetBox Kurulumu

dark-futuristic-server-docker-netbox

Ubuntu Server Docker NetBox Kurulumu için hazırladığım bu rehberde, işletim sistemi ve uygulama verilerini birbirinden bağımsız iki ayrı diske ayırarak adım adım kurulum sürecini anlatıyorum. XFS formatlı veri diski, Docker veri dizini yapılandırması ve systemd ile otomatik başlatma konularını kapsıyor.

Altyapı ve Hedef

Ağ altyapısını belgelemek ve yönetmek amacıyla bu yazıda NetBox’ı Docker üzerinde kurmaya karar verdim. Kurulumu daha sağlıklı ve sürdürülebilir hale getirmek için öncelikle işletim sistemi ve uygulama verilerini iki ayrı diske ayırdım. Böylece olası bir OS sorunu yaşandığında uygulama verileri güvende kalıyor; bunun yanı sıra disk genişletme ve yedekleme işlemleri de çok daha kolaylaşıyor.

BileşenDetay
İşletim SistemiUbuntu Server 25.10
1. Disk (OS)40 GB — Ubuntu kurulumu
2. Disk (Veri)100 GB — Docker ve NetBox verileri (XFS)
Sunucu IP10.x.x.x
NetBox Erişim Portu8080
NetBox Sürümüv4.5

Ubuntu Server Kurulumu ve Disk Yapılandırması

Ubuntu Server kurulumunda Storage configuration ekranında dikkat edilmesi gereken nokta, tüm diskin kullanılmasını sağlamaktır. FILE SYSTEM SUMMARY bölümünde free space görüyorsanız bu alanı LVM volume group’a eklemeniz gerekiyor.

01

Free space’i LVM’e ekle

AVAILABLE DEVICES altındaki free space satırına gir → Add as LVM Physical Volume seç.

02

ubuntu-lv boyutunu maksimuma çek

USED DEVICES altında ubuntu-lv satırına gir → Edit → Size alanını max yap. FILE SYSTEM SUMMARY’de / mount noktasının tüm diski göstermesi gerekiyor.

03

Sudo yetkisi

Kurulum sonrası yönetici kullanıcıya şifresiz sudo yetkisi vermek için /etc/sudoers dosyasına aşağıdaki satırı ekleyin.

bash
# Kullanıcıya şifresiz sudo yetkisi ver
echo "ServiceUser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# Disk durumunu doğrula
df -h
lsblk

2. Diski XFS Olarak Hazırlama ve Mount Etme

Sanal makineye 100 GB’lık ikinci diski ekledikten sonra sıradaki adımda bu diski XFS formatında hazırlıyoruz. Özellikle büyük dosya sistemleri ve yüksek I/O yükü için iyi bir seçim olan XFS; aynı zamanda Docker volume’ları ve PostgreSQL veritabanı için de uygun performans sağlıyor.

Partition Oluşturma

bash — disk hazırlık
# Diskleri listele — sdb görünmeli
lsblk

# GPT partition tablosu oluştur
parted /dev/sdb --script mklabel gpt
parted /dev/sdb --script mkpart primary xfs 0% 100%
partprobe /dev/sdb

# Doğrula — sdb1 görünmeli
lsblk /dev/sdb

XFS Format ve Mount

bash — xfs format ve mount
# XFS formatla
mkfs.xfs -f -L netbox-data /dev/sdb1

# Mount noktası oluştur ve bağla
mkdir -p /mnt/netbox-data
mount -t xfs /dev/sdb1 /mnt/netbox-data

# Doğrula
df -h | grep netbox-data
# /dev/sdb1   100G  2.0G  98G  2%  /mnt/netbox-data

Kalıcı Mount (fstab)

Reboot sonrasında disk otomatik mount edilsin diye UUID’yi alıp /etc/fstab‘a ekliyoruz. nofail parametresi, disk takılı olmasa bile sistemin açılmasını sağlıyor.

bash — fstab yapılandırması
# UUID al
blkid -s UUID -o value /dev/sdb1
# 7447494b-xxxx-xxxx-xxxx-edc9efb33db5

# fstab'a ekle (UUID'yi kendinize göre değiştirin)
nano /etc/fstab
# UUID=7447494b-xxxx-xxxx  /mnt/netbox-data  xfs  defaults,nofail  0  0

# Test et
umount /mnt/netbox-data
mount -a
df -h | grep netbox-data
# /dev/sdb1   100G  2.0G  98G  2%  /mnt/netbox-data

systemctl daemon-reload

Docker Kurulumu ve Veri Dizinini 2. Diske Taşıma

İlk olarak Docker’ı resmi script ile kuruyoruz. Ardından tüm Docker verilerinin (image, container, volume) 2. disk üzerinde tutulması için daemon.json ile veri dizinini yönlendiriyoruz. Bu sayede OS diski gereksiz yere dolmuyor ve veriler güvende kalıyor.

bash — docker kurulum
# Docker'ı resmi script ile kur
curl -fsSL https://get.docker.com | sh

# Versiyon doğrula
docker --version
# Docker version 29.4.1, build 055a478
ℹ Docker Veri Dizini Neden Önemli?

Varsayılan olarak Docker tüm verilerini /var/lib/docker altına, yani OS diskine yazar. Bunu değiştirmezsek 2. diski eklememiş olmaktan farkı kalmaz. daemon.json ile bunu 2. diske yönlendiriyoruz.

bash — docker veri dizini yapılandırması
# Docker veri dizinini 2. diske yönlendir
mkdir -p /mnt/netbox-data/docker

cat > /etc/docker/daemon.json <<'EOF'
{
  "data-root": "/mnt/netbox-data/docker"
}
EOF

# Docker'ı yeniden başlat ve doğrula
systemctl restart docker
docker info | grep "Docker Root Dir"
#  Docker Root Dir: /mnt/netbox-data/docker

NetBox Kurulumu

Kurulum Dizini ve Repo

Bir sonraki adımda NetBox Docker dosyalarını 2. disk üzerindeki dizine klonluyoruz. Böylece tüm uygulama dosyaları ve veritabanı OS diskinden bağımsız kalıyor; dolayısıyla olası bir sistem arızasında veriler etkilenmiyor.

bash — repo klonlama
# Kurulum dizini oluştur ve repo'yu klonla
mkdir -p /mnt/netbox-data/netbox
cd /mnt/netbox-data/netbox
git clone -b release https://github.com/netbox-community/netbox-docker.git .

Port Yapılandırması

NetBox’ın varsayılan docker-compose.yml dosyası portu dışarıya açmaz. Bu nedenle bunu bir override dosyasıyla çözüyoruz. Özellikle bu yöntem, orijinal compose dosyasını değiştirmeden özelleştirme yapmamızı sağlıyor; böylece güncellemelerde herhangi bir çakışma da olmuyor.

bash — override dosyası
cat > docker-compose.override.yml <<'EOF'
services:
  netbox:
    ports:
      - "8080:8080"
EOF

Çalıştırma

bash — netbox başlatma
# Container'ları ayağa kaldır
docker compose up -d

# Durum izle — healthy yazısını bekle (~2-3 dk)
watch docker compose ps

# Port dinleniyor mu kontrol et
ss -tlnp | grep 8080
# LISTEN 0  4096  0.0.0.0:8080  0.0.0.0:*
⚠ Port Açılmıyor mu?

docker compose ps çıktısında PORTS sütunu boşsa override dosyası oluşturulmamış demektir. docker-compose.override.yml dosyasını oluşturup docker compose down && docker compose up -d komutunu tekrar çalıştırın.

Admin Kullanıcısı Oluşturma

bash — superuser oluşturma
# Admin kullanıcısı oluştur
docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
# Superuser created successfully.

# Erişim
# http://SUNUCU_IP:8080

Reboot Sonrası Otomatik Başlatma

Son olarak sunucu yeniden başladığında NetBox’ın otomatik olarak ayağa kalkması için bir systemd servisi oluşturuyoruz.

bash — systemd servis
cat > /etc/systemd/system/netbox.service <<'EOF'
[Unit]
Description=Netbox Docker
After=docker.service
Requires=docker.service

[Service]
WorkingDirectory=/mnt/netbox-data/netbox
ExecStart=/usr/bin/docker compose up
ExecStop=/usr/bin/docker compose down
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# Servisi etkinleştir
systemctl daemon-reload
systemctl enable netbox
# Created symlink ... → /etc/systemd/system/netbox.service
💡 Servis Sıralaması

After=docker.service ve Requires=docker.service direktifleri sayesinde NetBox, Docker servisi hazır olmadan başlamaya çalışmaz. Reboot sırasındaki sıralama sorunu bu şekilde önleniyor.

Güncelleme

bash — upgrade
cd /mnt/netbox-data/netbox
docker compose pull
docker compose up -d
docker image prune -f

Sonuç

netbox-srv ✓ Aktif
OS Ubuntu 25.10
1. Disk 40 GB — OS
2. Disk 100 GB — XFS
netbox-app ✓ Healthy
NetBox v4.5 — :8080
Docker Root /mnt/netbox-data
Otomatik Başlatma systemd ✓
✓ Önemli Çıkarımlar

OS ve veri disklerini ayırmak kritik — olası bir OS arızasında uygulama verileriniz güvende kalıyor ve yeniden kurulum çok daha hızlı oluyor. Docker veri dizinini yapılandırmayı unutmayın — varsayılan olarak tüm Docker verileri OS diskine yazılır, daemon.json ile bunu değiştirmek şart. Port override dosyası zorunlu — netbox-docker repo’su varsayılan olarak portu dışarıya açmaz, docker-compose.override.yml olmadan arayüze erişilemez.

Özet

Bu yazıda, Ubuntu Server Docker NetBox Kurulumu sürecini adım adım ele aldık. İşletim sistemi ve uygulama verilerini birbirinden bağımsız iki ayrı diske ayırdık; OS için 40 GB, uygulama verileri için XFS formatlı 100 GB’lık bir disk yapılandırdık. Ardından Docker’ın veri dizinini daemon.json ile 2. diske yönlendirdik ve netbox-docker reposunu bu disk üzerine kurduk. Buna ek olarak port yapılandırması için docker-compose.override.yml dosyasının zorunlu olduğunu, varsayılan kurulumda portun dışarıya açılmadığını da gördük. Son olarak systemd servisi ile reboot sonrası otomatik başlatmayı sağladık.

Umarım bu rehber, Ubuntu üzerinde Docker ile NetBox kurmak isteyenlere yol gösterici olmuştur. Bunun yanı sıra karşılaştığınız sorunlarda bu yazıyı referans olarak kullanabilirsiniz. Sorularınız veya eklemek istedikleriniz varsa iletişim bölümünde buluşalım. Bir sonraki makalede tekrar görüşmek dileğiyle!