Perlu mengakses volume di Docker Container

Hai semua,

Saya memiliki aplikasi dukungan, SimpleHelp, yang saya jalankan di Docker Container di Container Station. Aplikasinya berjalan dengan baik kecuali ada satu masalah. Saya tidak bisa memperbarui perangkat lunak SimpleHelp saat rilis baru keluar. Tentu saja, saya bisa membuat container baru, tapi itu merepotkan jika harus melakukannya setiap kali dan mengatur ulang semua preferensi saya, dll.

Yang saya inginkan adalah bisa mengakses file di dalam container atau mengatur container agar saya bisa menggunakan direktori di NAS saya. Saya sudah mencoba mencari cara untuk melakukan ini dengan membuat volume pada container, tetapi caranya tidak jelas dan saya terus mengalami kendala karena saat membuat volume, sistem meminta nama container dan setiap nama container yang saya masukkan dianggap sebagai path yang tidak valid. Jadi saya terjebak.

Pasti ada cara untuk melakukan ini, jadi saya bertanya di sini.

Terima kasih!

Anda akan mengaturnya dengan file compose dan menyimpan konfigurasi serta data di folder permanen pada NAS Anda

misalnya:

Terima kasih, tapi sejujurnya saya benar-benar tidak tahu cara melakukannya! Saya benar-benar baru dalam Docker dan tidak tahu cara menulis skrip compose…

Apakah saya menambahkannya di sini?

    volumes:
       - /etc/timezone:/etc/timezone:ro
       - /etc/localtime:/etc/localtime:ro
       - /opt/appdata/simplehelp/configuration:/opt/SimpleHelp/configuration

Dan apakah saya cukup menggunakan path standar QNAP ke folder? Path di atas semuanya lokal ke container - benar? Jadi bagaimana cara saya menentukan path di luar container?

seharusnya

/share/‘sharename’

OK. Jadi, apakah perlu seperti ini:

    volumes:
       - /etc/timezone:/etc/timezone:ro
       - /etc/localtime:/etc/localtime:ro
       - /opt/appdata/simplehelp/configuration:/share/Container/SimpleHelp

Begitu?

Sebaliknya .. pertama lokasi mount lokal lalu lokasi internal container

- /share/Container/SimpleHelp:/opt/appdata/simplehelp/configuration

OK. Apakah saya perlu menentukan :rw setelahnya, atau menulis read/write, atau cukup dibiarkan saja?

Anda bisa .. Saya rasa default-nya adalah rw dan ro diatur oleh flag tersebut

Misalnya, Anda akan mengatur folder media Plex ke ro, sehingga jika terjadi infeksi malware pada container, file media Anda tidak dapat dihapus.

OK. Terima kasih. Saya akan mencoba ini.

Sekarang, apakah ada cara untuk membaca file container yang sudah ada dari NAS? Saya belum bisa menemukan caranya. Tidak mungkin?

Anda dapat menjelajahi volume yang telah dibuat melalui WinSCP (untuk kemudahan antarmuka GUI) dan cukup pergi ke lokasi yang ditunjukkan di sini


Ya, saya tidak memiliki volume dengan container saya saat ini. Saya hanya menggunakan wizard untuk membuatnya dari repository.

Di File Station saya bisa masuk ke:

/Container/container-station-data/lib/docker/containers/aa5528825f8a5980c5caffbc046d9057ee10f0fadea6a932697fb5fac51ce90c

Tapi tidak ada yang berguna di sana. Apakah itu tempat saya membutuhkan WinSCP?

hmm .. Anda bisa mencoba menambahkan sesi SSH container dan mencoba terhubung langsung ke container (seharusnya juga bisa melalui SSH)

Saya bisa mendapatkan konsol untuk kontainer, tapi saya tidak tahu cara keluar dari kontainer…

OK. Saya melakukan sesuatu yang salah. Saya mengambil file YML dan memodifikasinya untuk menambahkan volume lokal guna menyimpan data seperti yang telah kita diskusikan. Saya membuat ini sebagai aplikasi di ContainerStation. Namun tidak ada aplikasi yang muncul. Tapi saya melihat ada image Docker lain yang muncul di Images. Jadi saya instal dan mulai image tersebut, tetapi tidak ada apa pun yang tersimpan di folder yang saya buat di NAS untuk menyimpan data.

Saya mengunduh image Docker yang sama seperti yang Anda gunakan dan instalasi default sudah memiliki 3 pemetaan port NAT yang disertakan
SSH
HTTP
HTTPS

Coba lihat apakah Anda bisa terhubung ke SSH melalui itu

Sayangnya, tidak. Koneksi sedang ditolak. Saya dapat menggunakan aplikasi admin SimpleHelp untuk mendapatkan cadangan data server saya. Jadi jika saya sekarang bisa mencari cara untuk menyimpan data tersebut di folder yang dapat diakses di NAS saya, saya seharusnya bisa melakukan pemulihan dari cadangan saya. Namun, upaya saya dengan file YML tampaknya tidak berhasil. Jadi mari kita fokus pada hal itu…

Sepertinya aplikasi tidak berhasil dibuat:

Gagal membuat aplikasi "simplehelp". Pesan kesalahan: operasi operateApp [--project-name simplehelp up -d --remove-orphans] gagal: exit status 1: time="2025-03-27T12:19:37-05:00" level=warning msg="/share/CACHEDEV2_DATA/.qpkg/container-station/data/application/simplehelp/docker-compose.yml: atributversion sudah usang, akan diabaikan, harap hapus untuk menghindari kebingungan" network frontbridge dinyatakan sebagai eksternal, tetapi tidak ditemukan

bisakah kamu mengirimkan file compose?

version: "3.2"

services:
#Container SimpleHelp
  simplehelp:
    image: tecneo/simplehelp
    container_name : simplehelp
    ports:
      - "8680:80"
      - "8681:80/udp"
      - "8643:443"
      - "8643:443/udp"
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /share/Container/SimpleHelp/configuration:/opt/SimpleHelp/configuration
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.simplehelp.rule=Host(`SUBDOMAIN.DOMAIN.EXT`)"
      - "traefik.http.routers.simplehelp.entrypoints=web,websecure"
      - "traefik.http.routers.simplehelp.tls.certresolver=myresolver"
      - "traefik.http.services.simplehelp.loadbalancer.server.port=80"
      - "traefik.udp.routers.simplehelp-udp.entrypoints=webudp"
      - "traefik.udp.routers.simplehelp-udp.service=simplehelp"
      - "traefik.udp.services.simplehelp.loadbalancer.server.port=80"
    networks:
      - frontbridge
      
networks:
  frontbridge:
    external: true

Saya baru saja mengubah nama path tersebut dari yang ada di tautan GitHub yang kamu posting.

Berjalan dengan baik di sini ketika saya menghapus bagian networking tersebut (bagian itu sudah didefinisikan lebih atas sebagai NAT juga)

services:
#SimpleHelp Container
  simplehelp:
    image: tecneo/simplehelp
    container_name : simplehelp
    ports:
      - "8680:80"
      - "8681:80/udp"
      - "8643:443"
      - "8643:443/udp"
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /share/Container/SimpleHelp/configuration:/opt/SimpleHelp/configuration
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.simplehelp.rule=Host(`SUBDOMAIN.DOMAIN.EXT`)"
      - "traefik.http.routers.simplehelp.entrypoints=web,websecure"
      - "traefik.http.routers.simplehelp.tls.certresolver=myresolver"
      - "traefik.http.services.simplehelp.loadbalancer.server.port=80"
      - "traefik.udp.routers.simplehelp-udp.entrypoints=webudp"
      - "traefik.udp.routers.simplehelp-udp.service=simplehelp"
      - "traefik.udp.services.simplehelp.loadbalancer.server.port=80"

Folder konfigurasi berhasil terisi di sini untuk saya