Oggi vedremo come utilizzare Docker su un Synology NAS.
La maggior parte della spiegazione verrà fornita tramite il video qui sopra , ma è importante che alcuni punti siano documentati. L'implementazione Docker su un Synology NAS è molto potente quando la capisci, ma è leggermente confusa quando inizi inizialmente. Mentre creo tutorial specifici che ti guideranno attraverso l'implementazione di contenitori specifici, il mio obiettivo è fornirti le conoscenze necessarie per implementare qualsiasi contenitore desideri.
1. Montaggio del volume:come utilizzare Synology NAS Docker
Quando si crea un contenitore Docker, i dati importanti devono essere mappati su una cartella locale. Questo è completato nel Volume sezione, in cui una cartella locale è mappata a una cartella contenitore. Quando il contenitore è in esecuzione, la posizione della cartella del contenitore nel percorso di montaggio di seguito viene scritta nel file/cartella immesso su Synology NAS. Tutti i dati modificati nella cartella Synology NAS locale verranno scritti nella cartella contenitori.
È importante sottolineare che non puoi montare cartelle che desideri. Quando scarichi un'immagine dal registro, una piccola icona (mostrata sotto) ti porterà alla documentazione per quel contenitore. Puoi cercare nella documentazione per vedere quali cartelle possono essere montate.
Dopo aver navigato nella documentazione, dovrai cercare nella pagina per vedere quali volumi possono essere montati. Sfortunatamente, tutta la documentazione è diversa, quindi dovrai cercarla per trovare le informazioni sul volume. Utilizzando Pi-Hole come esempio, viene fornito un file Docker Compose di esempio. Sotto i volumi sezione, puoi trovare i due volumi che possono essere montati.
Utilizzando ./etc-pihole/:/etc/pihole/ ad esempio, etc-pihole è la cartella locale e /etc/pihole è la cartella del contenitore. Puoi facilmente tradurlo in un Synology NAS creando sottocartelle nella docker cartella e montando la posizione della cartella nella cartella del contenitore. Utilizzando lo screenshot qui sotto, ho creato una cartella denominata pi-hole e un nome di sottocartella etc-pihole . Tali cartelle si trovano all'interno della cartella Docker e sono montate nel /etc/pihole del contenitore cartella. Quando il contenitore viene avviato, il contenuto del /etc/pihole del contenitore verrà scritta nel etc-pihole del mio Synology NAS cartella. Se sei interessato a eseguire il backup di un container, le cartelle che monti per ogni container contengono tutti i tuoi dati personali. Queste sono le cartelle importanti di cui è necessario eseguire il backup. Il resto è semplicemente una configurazione che può essere creata su un'installazione NAS o Docker separata.
Questa parte successiva è un po' complicata:puoi sovrascrivere un file specifico sul contenitore creando una versione locale di quel file e selezionando il percorso esatto in cui si trova quel file nel contenitore. Un esempio è il resolv.conf file nello screenshot qui sotto. Quando il contenitore viene eseguito, il file resolv.conf sul contenitore verrà sostituito con il contenuto del file resolv.conf su Synology NAS . Per ribadire, se si desidera aggiornare un file sul contenitore, creare un file locale su Synology NAS e mappare quel file sul file interno del contenitore.
2. Interfaccia di rete Macvlan e Bridge
Ci sono situazioni in cui un contenitore docker utilizzerà determinate porte (80/443 per esempio) e l'interfaccia di rete host utilizza già quelle porte per qualcos'altro. Quando ciò si verifica, un conflitto di porte interromperà il corretto funzionamento del contenitore. In situazioni come questa, hai due modi principali per risolvere il problema:
- Cambia la porta locale in modo da utilizzare qualcosa di diverso. Ad esempio, se il container Docker desidera utilizzare la porta 80, modifica la Porta locale essere qualcosa di diverso, come 8080 come mostrato di seguito. Per accedere al contenitore Docker, utilizzare l'indirizzo IP del Synology NAS e la porta locale (http://[SYNOLOGY_NAS_IP]:8080).
2. Crea un'interfaccia di rete macvlan e una rete bridge. Un'interfaccia di rete macvlan eviterà tutti i conflitti di porta poiché stai specificando un indirizzo IP univoco che verrà utilizzato dal contenitore che stai creando. Ciò significa che accederai a quel contenitore utilizzando un indirizzo IP completamente diverso da Synology NAS. Per impostazione predefinita, il tuo host (Synology NAS) non sarà in grado di comunicare con il tuo container. Per questo motivo è necessaria una rete bridge in modo che l'host (Synology NAS) e il container possano comunicare. Per essere chiari, se Synology NAS deve comunicare con il container, utilizzerai l'indirizzo IP della rete bridge e NON l'indirizzo IP macvlan.
2.1 Come creare interfacce di rete Macvlan e Bridge
1. SSH nel tuo Synology NAS usando il tuo strumento SSH preferito.
2. Innanzitutto, è necessario determinare quali interfacce di rete esistono attualmente (sul Synology NAS) e annotare il nome dell'adattatore. Per fare ciò, eseguire il comando seguente e annotare il nome dell'interfaccia di rete che ha l'indirizzo IP del Synology NAS (in questo esempio, il mio è eth0).
ifconfig
3. Successivamente, è necessario eseguire il comando seguente durante la sostituzione della sottorete corretta (la maggior parte sono 192.168.1.0/24 per impostazione predefinita). Devi anche scegliere un indirizzo IP che desideri utilizzare che non è attualmente in uso. Userò 192.168.1.198. NOTA :ph_network sarà il nome della rete (puoi sostituirlo a tuo piacimento).
sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 ph_network
La nostra rete è ora creata. Possiamo quindi uscire dalla nostra sessione SSH e disabilitarla in DSM (se non la utilizzerai). Se lo stai disabilitando e hai creato una regola firewall per esso, dovresti disattivare anche la regola firewall.
4. Successivamente, dobbiamo creare una rete bridge. Questo è ciò che consentirà al nostro host (NAS) di comunicare con il nostro container. Apri Docker e vai alla Rete sezione. Seleziona Aggiungi e inserisci una sottorete che non è attualmente in uso. L'indirizzo IP del bridge che sto creando sarà 192.168.10.2. NOTA: ph_bridge sarà il nome della rete:puoi sostituirlo con il nome che desideri.
7. Le nostre nuove reti sono ora create. Possiamo quindi uscire dalla nostra sessione SSH e disabilitarla in DSM (se non la utilizzerai). Se lo stai disabilitando e hai creato una regola firewall per esso, dovresti disattivare anche la regola firewall.
8. Quando crei il tuo container, rimuovi la rete bridge e aggiungi le due reti (ph_network e ph_bridge, ma la tua potrebbe avere un nome diverso) al container.
Il contenitore ora utilizzerà le reti corrette! Eviterai qualsiasi conflitto di porte che si sarebbe verificato, disporrai di un indirizzo IP univoco per il container e sarai in grado di comunicare tra l'host (Synology NAS) e il container utilizzando la rete bridge!
3. Variabili d'ambiente
Per impostazione predefinita, molti contenitori Docker dispongono di variabili di ambiente che puoi modificare per modificare le impostazioni del contenitore. Non sono presenti variabili di ambiente standard tra i contenitori e, sebbene alcuni condividano i nomi delle variabili, è sempre consigliabile visualizzare la documentazione e determinare quali variabili di ambiente si desidera utilizzare. Il contenitore verrà fornito di serie con alcune variabili, ma hai la possibilità di modificarle o aggiungerne di nuove prima che il contenitore venga creato.
Questo è un esempio dei dettagli della variabile di ambiente Pi-Hole elencati nella documentazione.
Nel contenitore Docker su Synology NAS, l'Ambiente la sezione è dove puoi aggiungere, rimuovere o modificare le variabili di ambiente.
4. Come accedere a un container tramite Command-Line Interface (CLI)
Ci sono alcune situazioni in cui avrai bisogno o vorrai accedere ai file del contenitore. Sia che tu debba modificare qualcosa (montando un volume di file) o visualizzare la struttura, c'è un modo per farlo su un Synology NAS, ma deve essere fatto tramite SSH.
1. Avvia il tuo container! Se il container non è avviato, non potrai accedere al container!
2. Assicurati di poter SSH nel tuo Synology NAS. Apri il Pannello di controllo , seleziona Terminale e SNMP e Abilita SSH servizio.Se stai utilizzando il firewall di Synology, assicurati di consentire il traffico sulla porta 22 . Ho creato un video su come eseguire l'SSH in Synology NAS in caso di problemi.
3. Eseguire il comando seguente per elencare i contenitori in esecuzione. Copia l'ID contenitore.
sudo docker container ls
4. Esegui il comando seguente e sostituisci l'ID contenitore trovato sopra.
sudo docker exec -it CONTAINER_ID bash
5. Ora sarai connesso come utente root per il container!
5. Docker Compose – Synology NAS
Potrebbe sorprendere alcuni, ma è possibile utilizzare Docker Compose non appena Docker viene installato su un Synology NAS. Per chi non lo sapesse, Docker Compose ti consente di creare contenitori da un file di configurazione YAML con un solo comando. Tutto viene eseguito tramite l'interfaccia della riga di comando (CLI) e alcuni utenti lo trovano più semplice. Se hai intenzione di usarlo, potresti voler aggiornare Docker Compose poiché è una versione leggermente obsoleta.
Alcuni vantaggi di Docker Compose su Synology NAS:
- Tutto è gestito tramite l'interfaccia a riga di comando (CLI). Se ti senti a tuo agio nella CLI, molto probabilmente lo troverai molto più semplice rispetto alla configurazione manuale dei container nella GUI di Synology.
- Docker Compose è indipendente dal sistema, il che significa che il file di configurazione e le cartelle dei dati possono essere trasferiti a qualsiasi altro sistema che esegue Docker Compose e funzionerà come previsto. Questa è una netta differenza rispetto alla GUI Docker di Synology, in quanto è possibile eseguire il backup dei dati importanti del contenitore, ma non è possibile trasferirli facilmente su un sistema operativo diverso.
Alcuni aspetti negativi di Docker Compose su un Synology NAS:
- Tutto viene eseguito tramite l'interfaccia della riga di comando (CLI). Se non ti senti a tuo agio nella CLI, probabilmente è più facile per te gestire tutto nella GUI.
- Poiché il file Docker Compose contiene tutta la configurazione, devi assicurarti che questo file sia impostato perfettamente o eliminerai/ricreerai i contenitori regolarmente per testare e assicurarti che tutto funzioni come previsto.
5.1 Come creare un contenitore utilizzando Docker Compose
1. Sposta il docker-compose.yaml file che hai creato nella cartella del contenitore che creerai.
2. Assicurati di poter SSH nel tuo Synology NAS. Apri il Pannello di controllo , seleziona Terminale e SNMP e Abilita SSH servizio.Se stai utilizzando il firewall di Synology, assicurati di consentire il traffico sulla porta 22 . Ho creato un video su come eseguire l'SSH in Synology NAS in caso di problemi.
3. Vai alla docker posizione della cartella su Synology NAS e la sottocartella per il contenitore che creerai. Per la maggior parte delle persone, la cartella verrà archiviata sul volume1, ma se stai utilizzando più volumi, potrebbe essere qualcosa di diverso.
cd /volume1/docker/[conatiner_folder]
4. Dopo aver confermato che il docker-compose.yaml file si trova nella cartella corrente, eseguire il comando seguente per creare il contenitore. Il container inizierà ora!
sudo docker-compose up --detach
6. Conclusione:come utilizzare Docker su un Synology NAS
Esistono moltissimi contenitori Docker diversi che puoi creare su un Synology NAS. Spero che il video fornito abbia spiegato tutto in un modo facilmente comprensibile, ma è importante evidenziare come funziona la GUI Docker in modo da poter installare qualsiasi contenitore desideri. Il processo sarà lo stesso per tutti i container e, si spera, ti mostrerà come utilizzare Docker su un Synology NAS!
Come sempre, se avete domande, lasciatele nei commenti!