Come visualizzare i container Docker in lista

Il modo più semplice che ho trovato online per avere un elenco completo dei container e delle immagini (qua una lista di tutorial su Docker) attuali, è il seguente:

docker ps -a --format "table {{.Names}}\\t{{.Status}}\\t{{.Image}}"

Oppure potete anche creare un alias:

alias dps='docker ps -a --format "table {{.Names}}\\t{{.Status}}\\t{{.Image}}"'

Vi mosterà una lista molto più facile del classico docker ps -a che potrebbe essere anche poco chiaro con una lettura veloce.
Avrete anche lo stato attuale e informazione esatta sull’immagine del container.

Photo by CHUTTERSNAP on Unsplash

MariaDB e phpMyAdmin su Docker in pochi secondi

Volete avere SQL e PHP in 3 secondi con Docker? E sì, è compatibile anche con Apple M1.

docker run -d \\
   --name=mariadb \\
   -e PUID=1000 \\
   -e PGID=1000 \\
   -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \\
   -e TZ=Europe/London \\
   -p 3306:3306 \\
   -v path_to_data:/config \\
   --restart unless-stopped \\
   ghcr.io/linuxserver/mariadb
 docker run --name myadmin -d --link mariadb:db -p 8080:80 phpmyadmin

Per la versione macOS compatibile con Apple Silicon: potete trovare qua il link https://docs.docker.com/docker-for-mac/apple-m1/

Come installare WireGuard con Docker

Se anche voi, come me, volete avere una vostra VPN self-hosted, ecco a voi pochi passaggi per averla con Docker (nel caso non vogliate seguire la guida più tradizionale).

sudo docker create \\
--name=wireguard \\
--cap-add=NET_ADMIN \\
--cap-add=SYS_MODULE \
-e PUID=1000 \\
-e PGID=1000 \\
-e TZ=Europe/Rome \\
-e SERVERURL=domain.it \\
-e SERVERPORT=51820 \\
-e PEERS=3 \\
-e PEERDNS=1.1.1.1 \\
-e INTERNAL_SUBNET=10.13.13.0 \\
-p 51820:51820/udp \\
-v /home/pi/wireguard/config:/config \\
-v /lib/modules:/lib/modules \\
--restart unless-stopped \\
linuxserver/wireguard

Se volete accedere alla shell:

docker exec -it wireguard /bin/bash

Se invece volete controllare il log del container:

docker logs -f wireguard

Il resto della documentazione lo trovate qui: https://hub.docker.com/r/linuxserver/wireguard

Come installare nginx con Docker

Come potrete aver ben notato, spesso ho preferito nginx ad Apache per una miriade di progetti in quanto è molto più leggero e ha una configurazione (secondo il mio parere) più semplice rispetto alla controparte. Ovvio che come al solito contano le preferenze personali, perché oramai in termini di esigenze… direi che si eguagliano in termini di funzionalità.

Se volete creare il vostro webserver in modo semplice e veloce, ecco a voi:

docker run -v /home/nginx:/usr/share/nginx/html:ro -p 32769:80 --restart unless-stopped -d nginx

Se volete crearne altri 2 o altri 100, vi basterà eseguire lo stesso comando, semplicemente cambiando la porta 32769 (scelta a random). Così d’avere tutti i siti web, statici o dinamici che siano in un men che non si dica!

Come installare UniFi Controller su Docker

So che molti di voi preferiranno acquistare direttamente una Cloud Key (link Amazon) senza dover hostare e dover gestire aggiornamenti ecc.
Per nel caso vogliate comunque installarlo in self-hosted, ecco a voi.

Che sia su Raspberry Pi o su una normale distribuzione Debian, per installare l’UniFi Controller con Docker vi basterà eseguire:

docker run -d \
-e PUID=1000 \
-e PGID=1000 \
-e MEM_LIMIT=1024M \
-p 3478:3478/udp \
-p 10001:10001/udp \
-p 8080:8080 \
-p 8443:8443 \
-p 1900:1900/udp \
-p 8843:8843 \
-p 8880:8880 \
-p 6789:6789 \
-p 5514:5514 \
-v /home/config:/config \
--restart unless-stopped \
linuxserver/unifi-controller

Se invece dovete ancora installare Docker, vi basterà seguire questa semplice guida.

Per approfondire vi lascio il link al Docker Hub: https://hub.docker.com/r/linuxserver/unifi-controller

Come installare Pi-hole con Docker

Prima di tutto è necessario che abbiate installato Docker. Qui la guida per Raspberry Pi e qui per Ubuntu.

Poi aprite il terminale ed eseguite:

docker run -d \\
--name pihole \\
-p 53:53/tcp -p 53:53/udp \\
-p 80:80 \\
-e TZ="America/Chicago" \\
-v "$(pwd)/etc-pihole/:/etc/pihole/" \\
-v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \\
--dns=127.0.0.1 --dns=1.1.1.1 \\
--restart=unless-stopped \\
--hostname pi.hole \\
-e VIRTUAL_HOST="pi.hole" \\
-e PROXY_LOCATION="pi.hole" \\
pihole/pihole:latest

Per visualizzare la password dovrete andare sull’indirizzo IP locale (se volete configurare un indirizzo IP statico a Raspberry Pi OS, qui la guida) eseguite:

docker exec -it pihole pihole -a -p

E come indicato in questo thread, se volete utilizzare Pi-hole come DNS all’interno di altri container Docker, dovrete modificare la terza riga con la specifica dell’indirizzo IP locale. Ad esempio se il vostro IP è 192.168.1.2:

-p 53:53/tcp -p 192.168.1.2:53:53/udp \

Successivamente, se volete configurarlo anche agli altri container su Docker, vi basterà seguire questi passaggi.

Come cambiare DNS su Docker

I DNS come potrete notare dai miei articoli, possono generare diversi problemi e a volte può capitare che abbiate anche difficoltà a capire quale DNS vi risponde quando effettuate delle query.

Modifica del file /etc/docker/daemon.json

Se volete forzare i container a usare un certo DNS, dovrete modificare questo file:

sudo nano /etc/docker/daemon.json

E incollate (modificatelo a vostra discrezione):

{
    "dns": ["192.168.1.2", "8.8.8.8"]
}

Poi riavviate il servizio di Docker con:

sudo service docker restart

Come installare Sonarr con Docker

Se non avete un Raspberry Pi su cui installarlo o magari volete utilizzare tutte le potenzialità di Docker, ecco a voi lo snippet code per installarlo facilmente:

docker pull ildeon7/rpi-sonarr
docker create --name sonarr-data \\
-v /etc/localtime:/etc/localtime:ro \\
-v :/config \\
-v :/downloads \\
-v :/tv \\
ildeon7/rpi-sonarr /bin/true
docker run -d -p 8080:8080 --volumes-from sonarr-data ildeon7/rpi-sonarr

Come installare FreshRSS con Docker

Potete installarlo su qualunque sistema, Ubuntu o Raspbian, come sapete, sono i miei preferiti.

E come potrete ben sapere, anche Docker è un’ottima risorsa per questo tipo di applicativi self hosted (esempio di come installare Home Assistant con Docker).

Lo snippet code per installare FreshRSS è:

sudo docker pull linuxserver/freshrss
sudo docker create \\
--name=freshrss \\
-e PUID=1000 \\
-e PGID=1000 \\
-e TZ=Europe/London \\
-p 80:80 \\
-v /home/pi/freshrss:/config \\
--restart unless-stopped \\
linuxserver/freshrss
sudo docker start freshrss

Se invece siete ancora in difficoltà, seguite questa guida per installare Docker.

Nota: se lo state installando su un Raspberry Pi Zero dovete usare:

docker pull linuxserver/freshrss:arm32v6-latest

Altrimenti su un Raspberry Pi a 64 bit:

arm64v8-latest

Ora potete andare sul vostro browser preferito e accedere tramite l’indirizzo ip privato alla porta 80, quindi vi basterà digitare il vostro ip:

Voilà, proseguite e buona lettura!

Come installare DuckDNS su Docker

Se avete installato Docker come vi avevo indicato, vi basterà eseguire:

docker create \\
  --name=duckdns \\
  -e PUID=1000 `#optional` \\
  -e PGID=1000 `#optional` \\
  -e TZ=Europe/London \\
  -e SUBDOMAINS=subdomain1,subdomain2 \\
  -e TOKEN=token \\
  -e LOG_FILE=false `#optional` \\
  -v /path/to/appdata/config:/config `#optional` \\
  --restart unless-stopped \\
  linuxserver/duckdns

Il resto della documentazione: https://hub.docker.com/r/linuxserver/duckdns