Container Station (CS) & Portainer - CS tidak menemukan container yang dibuat di Portainer

Hai semuanya,

TL;DR - Bisakah saya menyalin/membackup kontainer Portainer saya dan menerapkannya kembali di Container Station? Atau bagaimana cara menghubungkan Portainer Station saya ke Container Station?

Mengikuti topik sebelumnya yang saya buat, saya memiliki QNAP TS-264-8G baru dengan 2 x 1TB WD Red SSD [SATA] (RAID1) karena saya sedang mencari solusi baru untuk Plex Media Server (PMS) otomatis dengan PMS terinstal di QTS dan semua aplikasi (misal *arrs, SabNZBd) terinstal sebagai kontainer.

Hal pertama yang saya lakukan adalah menginstal PMS dan memperbarui (serta menghubungkan ke drive media eksternal saya) - semua berjalan baik. Selanjutnya adalah menginstal Container Station bersama Portainer dari repo https://www.myqnap.org/. Sejauh ini lancar.

Kemudian saya menginstal kontainer menggunakan Portainer dengan menarik image dari lscr.io/linuxserver/[misal.*arr]:latest dan mengisi port default (menggunakan Map Additional Port) serta Environment yang disarankan (PUID, PGID, TZ) dan Volumes serta kebijakan restart.

Semua aplikasi berjalan baik, saling terhubung dan mengirim media ke drive media eksternal Plex - semua oke. NAMUN… Saat saya melihat di CS saya tidak melihat SATU PUN kontainer dan ketika saya ssh dan menggunakan “docker ps” tidak ada yang terdaftar.

Satu hal yang perlu dicatat adalah saat saya membuat kontainer di Portainer saya TIDAK menggunakan lokasi folder “default” CS - sebagian karena ini adalah path yang sangat panjang dan sejujurnya mengikuti berbagai panduan YouTube ini tampaknya disarankan. Apakah ini masalah? Kontainer tetap berjalan!

Untuk mengecek, saya menggunakan Container Station untuk menginstal Bazarr (bukan sesuatu yang akan saya gunakan) dan ini terinstal serta berjalan baik DAN saya melihat ini saat ssh “docker ps” TAPI tidak di portainer!

Jadi pertanyaan saya adalah mengapa kedua (CS dan Portainer) ini tidak berkomunikasi? Dan bisakah saya mengekspor kontainer saya di Portainer dan menerapkannya di Container Station karena sebenarnya saya lebih suka ini karena saya bisa mengatur satu aplikasi untuk langsung menggunakan port LAN saya (melewati bridge VPN default yang terinstal di QTS)?

Saya tahu ini postingan panjang tapi mencoba memberikan info sebanyak mungkin. Semoga ada yang bisa mengarahkan saya atau memberi saran apa yang salah? Saya benar-benar tidak ingin mengkonfigurasi ulang semua kontainer jika memungkinkan.

Terima kasih banyak sebelumnya!

EDIT Satu hal lagi yang baru saya sadari adalah saat saya menginstal Portainer tampaknya melewati halaman start up yang didokumentasikan sehingga semua kontainer yang diinstal di Portainer berada di Environment “Primary” yang mencantumkan “URL:/var/run/system-docker.sock” tetapi saya melihat di contoh lain juga ada environment “Local” yang memiliki “/var/run/docker.sock”. Saya curiga ini cukup penting tapi saya tidak pernah mendapat opsi di Portainer untuk membuat environment “Local” stand-alone…

Saya rasa temuan baru Anda penting. Sejauh yang saya tahu, banyak layanan qnap memerlukan container station untuk berjalan, tetapi mereka tidak muncul di antarmuka container station. Mungkin ada 2 lingkungan docker yang berbeda di QTS. Selain itu, saya pikir pengembang paket portainer mungkin merupakan tempat yang lebih baik untuk mencari bantuan.

Setelah banyak percobaan (sayangnya pada satu titik saya sempat membuat QNAP saya brick dan harus melakukan reset 3 detik untuk mendapatkan akses kembali), saya bisa memastikan bahwa lingkungan default (dan satu-satunya) “Primary” dengan menggunakan “…system-docker.sock” memang menjadi masalahnya. Saya membuat lingkungan baru dan membangun ulang container secara manual, lalu menggunakan backup dari konfigurasi asli untuk memulihkan pada container baru tersebut. Sekarang semuanya berjalan dengan baik dan saya bisa melewati QNAP VPN Client (untuk langsung mengakses LAN). Butuh perjuangan, keringat, dan air mata, tapi akhirnya berhasil (setidaknya sejauh ini berjalan lancar)… Saya akan mendokumentasikan langkah-langkah yang saya lakukan secara lebih detail jika ada orang lain yang mengalami masalah serupa, tapi sekarang saya punya solusi yang bekerja (meskipun sangat manual). Terima kasih!

Saya berpendapat jika kamu ingin masuk lebih dalam ke dunia *arr, sebaiknya gunakan Portainer untuk mengatur container-container kamu.

Buat aplikasi di CS3+, CS mengontrol Portainer, gunakan Portainer untuk mengontrol semuanya. Memodifikasi sesuatu di CS itu merepotkan, memetakan perintah docker commandline ke CS juga merepotkan, memetakan docker compose ke CS sedikit lebih baik tapi tetap merepotkan.

Portainer adalah pendekatan yang benar.
(Saya menggunakan proxy karena semua yang ingin saya coba membutuhkan docker.sock, dan saya malas memperbaiki sesuatu di QNAP jika ada aplikasi/container yang melakukan hal bodoh dengan socket.)

networks:
  # buat network di bawah ini sebelum menjalankan template ini
  external_edge:
    external: true

services:
  portainer:
    networks:
      external_edge:
        ipv4_address: 172.27.1.250
    container_name: portainer-ce
    image: portainer/portainer-ce:latest
    security_opt:
      - no-new-privileges:true
    environment:
      - TZ=America/Toronto
    ports:
      - 9001:8000
      - 9000:9000
      - 9043:9443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:rw
      - /share/Container/portainer-ce/data:/data:rw
    restart: always
  dockerproxy:
    networks:
      external_edge:
        ipv4_address: 172.27.1.251
    container_name: dockerproxy
    image: ghcr.io/tecnativa/docker-socket-proxy:latest
    environment:
#      - PUID=1001
#      - PGID=1000
      - TZ=America/Toronto
      - CONTAINERS=1 # Izinkan akses untuk melihat container
      - SERVICES=1 # Izinkan akses untuk melihat service (diperlukan saat menggunakan Docker Swarm)
      - TASKS=1 # Izinkan akses untuk melihat task (diperlukan saat menggunakan Docker Swarm)
      - POST=0 # Tidak mengizinkan operasi POST (hanya baca)
    ports:
      - 127.0.0.1:2375:2375
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro # Dipasang sebagai hanya-baca
    restart: unless-stopped

Oh dan contoh container yang saya jalankan dari Portainer setelahnya.

networks:
  # buat jaringan di bawah ini sebelum menjalankan template ini
  external_edge:
    external: true

services:
  jellyfin:
    networks:
      - external_edge
    container_name: jellyfin
    image: lscr.io/linuxserver/jellyfin:latest
    deploy:
      resources:
        limits:
          cpus: 3
          memory: 2G
    environment:
      - PUID=1001
      - PGID=1000
      - TZ=America/Toronto
      - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel
      - JELLYFIN_CONFIG_DIR=/config
      - JELLYFIN_CACHE_DIR=/cache
      - JELLYFIN_PublishedServerUrl=http://TheVault.local #opsional
    ports:
      - 8096:8096
      - 8920:8920 #opsional
      - 7359:7359/udp #opsional
      - 1900:1900/udp #opsional
    volumes:
      - /share/docker/appdata/jellyfin/cache:/cache
      - /share/docker/appdata/jellyfin/config:/config # Pastikan direktori config lokal Anda sudah ada
      - /share/Media Library:/mnt/mediaShare:ro
      # Opsional - font tambahan untuk digunakan saat transcoding dengan subtitle burn-in
      - /usr/share/fonts/:/usr/local/share/fonts/custom:ro
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped