Utilizzare Redis con i container Docker: come funziona
Redis è tra le immagini di Docker più popolari. Tra le altre cose, l’archivio di strutture chiave-valore permette di salvare container Docker. Redis e Docker si collegano tra loro nel terminale. Vi mostriamo come funziona.
Requisiti per l’utilizzo di Redis
Dopo l’installazione di Docker su un server Linux ci si chiede spesso dove salvare concretamente i file dei container Docker. Redis è un database NoSQL che offre la soluzione ideale grazie alla rapidità delle sue prestazioni. Prima di collegare Redis e Docker, assicuratevi di rispettare i seguenti requisiti:
- Docker è installato e funziona correttamente.
- Avete familiarità con i comandi e le funzioni basilari di Docker.
- Avete un server cloud con Linux (Ubuntu 14.04 o CentOS 7).
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso
Eseguire Redis in un container Docker
L’immagine ufficiale di Redis è una delle tre immagini Docker più apprezzate. Contiene il comando EXPOSE 6379 (la porta standard usata da Redis) che permette di utilizzare automaticamente Redis su tutti i container collegati.
Per eseguire un’istanza di Redis in un container Docker denominato my-redis-container, utilizzate il comando:
sudo docker run --name my-redis-container -d redis
Collegare Redis a un altro container Docker
Per creare un collegamento con un’istanza di Redis di un altro container Docker, inserite --link[Redis Containername oder ID]:redis al comando docker-run di questo container.
Questo, ad esempio, vi permette di avviare un container denominato my-redis-application dall’immagine CentOS-7 ufficiale e collegarlo con il container my-redis-container appena creato. Per farlo, utilizzate il comando:
sudo docker run --name my-redis-application --link my-redis-container:redis -d centos
Per creare un collegamento con un’istanza di Redis da un altro container Docker tramite un’interfaccia a riga di comando, collegate i container e indicate l’host e la porta con -h redis -p 6379.
Ad esempio:
sudo docker run -it --name my-redis-cli --link my-redis-container:redis --rm redis redis-cli -h redis -p 6379
In questo modo collegherete con il nuovo container my-redis-cli il container my-redis-container attraverso un collegamento redis-cli. Utilizzate la combinazione di tasti [CTRL] + [P] e [CTRL] + [Q] per abbandonare questo container e tornare alla riga di comando.
Evita che venga visualizzata un'allerta nella barra degli indirizzi e ottieni la fiducia dei clienti con un sito crittografato tramite SSL.
Creare un collegamento a un container Redis da un server remoto
È anche possibile collegare Docker con Redis da un server. Per farlo, dovrete utilizzare l’inoltro delle porte di Docker che vi permette di accedere al container con l’indirizzo IP o il nome di dominio del server host.
Per utilizzare il port forwarding di Docker per Redis, inserite al comando docker run il flag -p [host port]:6379.
Così si configura l’inoltro delle porte in modo da collegarvi con il container attraverso la porta 7001, (la porta standard dei protocolli TCP-/UDP). Il comando docker run è il seguente:
sudo docker run --name my-redis-container -p 7001:6379 -d redis
Infine, è possibile passare a un altro server e accedere al container my-redis-container con il comando seguente:
sudo redis-cli -h [host IP or domain name] -p 7001
Per esempio, se l’indirizzo IP del server host su cui è in esecuzione il container Redis-Docker è 192.168.0.1, il seguente comando vi permette di accedere al container Redis da qualsiasi server vogliate:
sudo redis-cli -h 192.168.0.1 -p 7001
Se utilizzate un firewall, dovete autorizzare un accesso esterno alle porte corrispondenti, altrimenti l’accesso sarà bloccato. Per farlo, andate nelle impostazioni del firewall e autorizzate l’accesso alle porte interessate.
Caricare un file redis.conf definito dall’utente
Se avete un file redis.conf definito dall’utente dove avete già configurato Redis, potete caricarlo all’avvio del container inserendo al comando docker run il flag -v:
-v [path to custom redis.conf file]:/usr/local/etc/redis/redis.conf
A questo comando dovrete anche allegare il percorso del vostro file con estensione conf. Per caricare, ad esempio, un file definito dall’utente con il percorso /data/myredis/redis.conf, il comando sarà:
sudo docker run --name my-redis-container -v /data/myredis/redis.conf:/usr/local/etc/redis/redis.conf -d redis