Docker'ı SD kartı veri kökü olarak kullanacak şekilde yapılandır (örneğin PLCVisu ile WP400)

Bu rehber, Docker'ın deposunun SD karta nasıl yönlendirileceğini** açıklar; bu, sınırlı dahili belleğe sahip cihazlar için ideal (örneğin WAGO WP400) için idealdir. Hazırlık, sürekli montaj ve yapılandırılmış sorun giderme içerir.

Yazılım Gereksinimleri

  1. Docker
    WAGO Docker Kurulum Rehberi (WP400 Docker IPK araması)

  2. PLCVisu Software (.ipk)
    WAGO PLCVisu İndirme Sayfası

  3. Kök Erişim
    SSH (ssh root@<wp400-ip>) veya seri terminal üzerinden

Donanım Gereksinimleri

  1. SD Kart veya USB Adaptörlü SSD
  • Minimum Sınıf 10 veya UHS-I
  • En az 8 GB (16+ GB önerilir)
  • ext4 veya vfat olarak biçimlendirilmiştir (Linux uyumlu)

Ön Koşullar

Mount SD Kart ve Docker Depolamayı Hazırla

1. SD kart cihazını tanımlayın

Koşu:

lsblk

ya da:

dmesg | grep sd

/dev/mmcblk0p1 veya /dev/sda1 gibi bir aygıt arayın.

### 2. Format the SD Card (if needed – this erases all data)

mkfs.ext4 /dev/sda1

Cihaz adını sisteminizle uyumlu şekilde ayarlayın
ext4 desteklenmiyorsa mkfs.vfat kullanabilirsiniz

### 3. Create Mount Point and Mount the SD Card

mkdir -p /mnt/sdcard
mount /dev/sda1 /mnt/sdcard

Doğrulayın: https://doc.plcvisu.cloud/tr/downloads.html

df -h

4. Docker Veri Dizini'ni Hazırlayın

mkdir -p /mnt/sdcard/docker
chmod 711 /mnt/sdcard/docker

5. Yapılandırmayı Değiştirmeden Önce Docker'ı Durdurun

/etc/init.d/docker stop

6. Mevcut Docker Verilerini Yedekle (Isteğe Bağlı)

mv /var/lib/docker /var/lib/docker.backup

7. Docker'ı SD kartı veri kökü olarak kullanacak şekilde yapılandırın

Düzenle veya oluştur:

vi /etc/docker/daemon.json

Ek:

{
  "data-root": "/mnt/sdcard/docker"
}

Kaydet ve kapat.

8. Docker'ı Tekrar Başlat

/etc/init.d/docker start

9. Docker Depolama Yolunu Doğrulayın

docker info | grep "Docker Root Dir"

Beklenen sonuç:

Docker Root Dir: /mnt/sdcard/docker

İsteğe bağlı: Yeniden başlatmadan sonra montajı kalıcı hale getir

Düzenle /etc/fstab:

/dev/sda1 /mnt/sdcard ext4 defaults 0 2

⚠️ SD kartın her zaman açılışta hazır olduğundan emin olun
Test etmek için mount -a kullanın

Yeniden Başlatma Sonrası Kontrol

Yeniden başlatmadan sonra:

df -h | grep /mnt/sdcard
docker info | grep "Docker Root Dir"

/var/lib/docker olarak geri dönüş yaparsanız → fstab ve Docker açılış zamanlamasını kontrol edin

Sorun Giderme Rehberi

Belirti Neden Çözüm
Docker Root Dir hâlâ /var/lib/docker olarak kalmıştır SD kart yeterince erken takılmadı Docker başlatmayı geciktirin veya mount --bind kullanın
mount: wrong fs type Yanlış dosya sistemi formatı mkfs.ext4 ile yeniden formatlama
Cihazda yer kalmadı SD kart çok küçük / yanlış montaj df -h ile kontrol et, SD boyutunu değiştir veya sağa monte et
/mnt/sdcard/docker üzerinde izin reddedildi Yanlış izinler Koş chmod 711 /mnt/sdcard/docker
Docker çalışmaz Yapılandırma hatası veya eksik klasör /etc/docker/daemon.json ve kayıtları kontrol edin

Son Notlar

Docker'ı yapılandırmasını değiştirmeden önce her zaman durdurun
Docker çalışırken SD kartı çıkarmayın
Kritik uygulamalar için: endüstriyel seviye SD veya harici SSD kullanın

  • /var/lib/docker.backup dosyasını geri getirerek ve daemon.json düzenleyerek temiz bir şekilde geri dönebilirsiniz

⚠️ SD kartın açılış sırasında Docker başlamadan takıldığından emin olun.
Montaj çok geç olursa, Docker /var/lib/docker olarak yeniden başlatılır.

Node-RED Docker Görgesini WP400'de Yükle ve Çalıştır

Bu yöntem, önceden indirilmiş bir .tar Docker görüntü dosyası kullanarak bir WP400 üzerinde internet erişimi olmadan Node-RED'i dağıtmanıza olanak tanır.

1. Docker Image .tar dosyasını indir (bağlantıdan)

Docker Hub'dan çekme yapmak yerine, hazırlanmış görüntü dosyasını indirin:

???? İndir node-red-arm.tar

Dosyayı geliştirme bilgisayarınızda yerel olarak kaydedin.

2. Docker Image dosyasını WP400 SD kartına (monte edilmiş dizin) aktarın

Docker görüntüsünü geçici belleğe (/tmp) aktarmak yerine, onu WP400'e monte edilen SD karta **doğrudan yerleştirebilirsiniz. Bu özellikle görüntü büyükse ve dahili depoyu tüketmekten kaçınmak istiyorsanız faydalıdır.

Windows

Seçenek A – WinSCP (GUI):

  1. WinSCP'i yükleyin.
  2. SCP kullanarak WP400'e bağlanın (root@<wp400-ip>).
  3. Genellikle /mnt/sdcard olan, takılı SD kart dizinine gidin.
  4. node-red-arm327l.tar dosyasını /mnt/sdcard dizinine sürükleyip bırakın.

Seçenek B – PuTTY (pscp) ile Komut Satırı:

pscp C:pathtonode-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard

macOS

Terminali Kullanın:

scp ~/Downloads/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard

Linux

Herhangi bir terminali kullanın:

scp /path/to/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard

USB Stick (Tüm işletim sistemleri için alternatif)

Ağ üzerinden aktarım mümkün değilse:

  1. Dosyayı bir USB belleğe kopyalayın.
  2. USB'yi WP400'e takın.
  3. WP400'de SD karta taşın:
    mount /dev/sda1 /mnt/usb
    cp /mnt/usb/node-red-arm327l.tar /mnt/sdcard
    umount /mnt/usb

Dosya /mnt/sdcard altına kaydedildikten sonra, 3. Adıma geçin: SD Karttan Docker Görüntüsünü Yükleme

Dosya /tmp altında kullanılabilir hale geldikten sonra, 3. Adıma geçin: WP400'e Docker Görüntüsünü Yükleme

3. WP400'de Docker Image'i Yükleyin

WP400'e SSH ile gir ve çalıştır:

docker load -i /tmp/node-red-arm327l.tar

Bu, görüntüyü yerel Docker kayıt defterinize yükleyecektir.

4. Node-RED Konteynerini çalıştırın

docker run -it -d -p 1880:1880 -v node_red_data:/data --name wago-nodered --restart unless-stopped node-red-arm327l:latest

✔ Resim adının (node-red-arm327l:latest) docker images ile eşleştiğinden emin olun.
???? SD kartı kalıcı veri için kullanmak için, node_red_data yerine /mnt/sdcard/nodered gibi tam bir yol verin.

Node-RED'e erişin

Tarayıcınızda açın:

http://<wp400-ip>:1880

Artık WP400 üzerinde doğrudan internet erişimi gerektirmeyen tam işlevsel bir Node-RED örneğiniz var.

http://<wp400-ip>:1880
/mnt/sdcard/nodered
node_red_data
docker images
node-red-arm327l:latest
docker run -it -d -p 1880:1880 -v node_red_data:/data --name wago-nodered --restart unless-stopped node-red-arm327l:latest
docker load -i /tmp/node-red-arm327l.tar
/tmp
/mnt/sdcard
mount /dev/sda1 /mnt/usb cp /mnt/usb/node-red-arm327l.tar /mnt/sdcard umount /mnt/usb
scp /path/to/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
scp ~/Downloads/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
pscp C:pathtonode-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
/mnt/sdcard
node-red-arm327l.tar
/mnt/sdcard
root@<wp400-ip>
/tmp
.tar
.tar
/var/lib/docker
daemon.json
/var/lib/docker.backup
/etc/docker/daemon.json
chmod 711 /mnt/sdcard/docker
/mnt/sdcard/docker
df -h
Cihazda yer kalmadı
mkfs.ext4
mount: wrong fs type
mount --bind
/var/lib/docker
Docker Root Dir
fstab
/var/lib/docker
df -h | grep /mnt/sdcard docker info | grep "Docker Root Dir"
mount -a
/dev/sda1 /mnt/sdcard ext4 defaults 0 2
/etc/fstab
Docker Root Dir: /mnt/sdcard/docker
docker info | grep "Docker Root Dir"
/etc/init.d/docker start
{ "data-root": "/mnt/sdcard/docker" }
vi /etc/docker/daemon.json
mv /var/lib/docker /var/lib/docker.backup
/etc/init.d/docker stop
mkdir -p /mnt/sdcard/docker chmod 711 /mnt/sdcard/docker
df -h
mkdir -p /mnt/sdcard mount /dev/sda1 /mnt/sdcard
mkfs.vfat
ext4
mkfs.ext4 /dev/sda1
/dev/sda1
/dev/mmcblk0p1
dmesg | grep sd
lsblk
vfat
ext4
ssh root@<wp400-ip>