- 1 1. Introduzione
- 2 2. Installare Docker su Ubuntu
- 3 3. Operazioni di base delle immagini Docker
- 4 4. Creare immagini personalizzate con Dockerfile
- 5 5. Configurare un ambiente giapponese nei contenitori Ubuntu
- 6 6. Ottimizzare e ridurre le immagini Docker
- 7 7. Esempio pratico: sviluppo di applicazioni in container Ubuntu
- 8 8. FAQ & Risoluzione dei problemi
1. Introduzione
Che cos’è Docker?
Docker è una piattaforma che utilizza la tecnologia di virtualizzazione basata su container per sviluppare, distribuire ed eseguire applicazioni in modo efficiente. A differenza delle tradizionali macchine virtuali (VM), i container condividono il kernel del sistema operativo host, consentendo avvii più rapidi e un consumo di risorse inferiore.
Vantaggi dell’utilizzo di Docker su Ubuntu
Ubuntu è una delle distribuzioni Linux con una forte compatibilità con Docker. I motivi principali includono:
- Supporto ufficiale : Docker supporta ufficialmente Ubuntu, permettendo un’installazione semplice tramite il repository ufficiale.
- Gestione pacchetti stabile : Il gestore di pacchetti APT di Ubuntu rende la gestione delle versioni lineare.
- Ampio supporto della community : Ubuntu ha una vasta base di utenti a livello globale, facilitando la risoluzione dei problemi quando si presentano.
Cosa imparerai in questo articolo
Questa guida spiega i seguenti argomenti passo dopo passo:
- Come installare Docker su Ubuntu
- Operazioni di base per le immagini Docker
- Creare immagini personalizzate usando Dockerfile
- Configurare la localizzazione giapponese in un container Ubuntu
- Ottimizzare e ridurre le dimensioni delle immagini Docker
- Sviluppare applicazioni all’interno di container Ubuntu
- Errori comuni e risoluzione dei problemi
Il contenuto è utile sia per principianti sia per utenti avanzati, quindi sentiti libero di consultarlo in qualsiasi fase.
2. Installare Docker su Ubuntu
Installare Docker usando il repository ufficiale
Su Ubuntu è possibile installare Docker facilmente tramite il repository ufficiale. Segui i passaggi qui sotto per configurare l’ambiente.
1. Rimuovere i pacchetti Docker esistenti
Ubuntu potrebbe includere un pacchetto chiamato docker.io, che potrebbe essere una versione più vecchia. Rimuovilo prima di installare l’ultima versione di Docker.
sudo apt remove docker docker-engine docker.io containerd runc
2. Installare i pacchetti richiesti
Installa i pacchetti di dipendenza prima dell’installazione.
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. Aggiungere il repository ufficiale di Docker
Aggiungi la chiave GPG ufficiale di Docker e configura il repository.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Installare Docker
Dopo aver aggiunto il repository, installa Docker.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. Verificare l’installazione
Controlla che Docker sia installato correttamente visualizzando le informazioni sulla versione.
docker --version
Configurazione iniziale dopo l’installazione
1. Avviare e abilitare il servizio Docker
Avvia il servizio Docker e abilita l’avvio automatico al boot.
sudo systemctl start docker
sudo systemctl enable docker
2. Consentire agli utenti non root di eseguire Docker
Per impostazione predefinita, solo root può eseguire Docker. Consenti agli utenti normali di eseguire i comandi Docker.
sudo usermod -aG docker $USER
Disconnettiti e riconnettiti per applicare le modifiche.
3. Testare il funzionamento di Docker
Esegui il container hello-world usando un account utente normale.
docker run hello-world
Se l’output include “Hello from Docker!”, l’installazione è avvenuta con successo.

3. Operazioni di base delle immagini Docker
Che cos’è un’immagine Docker?
Un’immagine Docker funge da modello per creare i container. Utilizzando un’immagine Docker basata su Ubuntu, puoi avviare rapidamente un ambiente Ubuntu.
Scaricare le immagini Ubuntu da Docker Hub
Docker Hub fornisce numerose immagini Docker ufficiali. Per scaricare un’immagine Ubuntu, esegui:
docker pull ubuntu
Avviare e arrestare i container
Usa l’immagine Ubuntu scaricata per avviare un container:
docker run -it ubuntu bash
Questo apre una shell all’interno del contenitore Ubuntu, consentendoti di operare al suo interno.
Elenca i contenitori
Mostra i contenitori in esecuzione:
docker ps
Mostra tutti i contenitori, inclusi quelli arrestati:
docker ps -a
Arrestare e rimuovere i contenitori
Arresta un contenitore in esecuzione:
docker stop [container ID or name]
Rimuovi un contenitore non necessario:
docker rm [container ID or name]
Gestire le immagini Docker
Elenca le immagini Docker scaricate:
docker images
Rimuovi un’immagine:
docker rmi [image ID]
4. Creare immagini personalizzate con Dockerfile
Cos’è un Dockerfile?
Un Dockerfile è un file di configurazione usato per costruire immagini Docker. In base alle istruzioni scritte nel Dockerfile, è possibile creare immagini Docker personalizzate. Questo consente di unificare gli ambienti di sviluppo o creare immagini che includono i pacchetti richiesti.
Sintassi di base del Dockerfile
Un Dockerfile tipicamente include i seguenti comandi:
| Command | Description |
|---|---|
FROM | Specifies the base image |
RUN | Executes commands to build the image |
COPY | Copies files into the container |
WORKDIR | Sets the working directory |
CMD | Default command executed when the container starts |
ENTRYPOINT | Defines the entry point of the container |
Creare un’immagine personalizzata basata su Ubuntu
Segui i passaggi seguenti per creare un’immagine Docker personalizzata basata su Ubuntu.
1. Crea una directory di lavoro
Innanzitutto, crea una nuova directory di progetto e spostati al suo interno.
mkdir my-ubuntu-image
cd my-ubuntu-image
2. Crea un Dockerfile
Crea un Dockerfile all’interno della directory e scrivi il seguente contenuto:
# Base Ubuntu official image
FROM ubuntu:latest
# Maintainer information (optional)
LABEL maintainer="your-email@example.com"
# Update package list and install basic tools
RUN apt update && apt install -y curl vim git
# Set working directory
WORKDIR /workspace
# Default command when the container starts
CMD ["bash"]
3. Costruisci l’immagine Docker
Costruisci un’immagine personalizzata dal tuo Dockerfile:
docker build -t my-ubuntu-image .
L’opzione -t assegna un nome all’immagine.
4. Verifica l’immagine
Controlla la tua immagine appena costruita:
docker images
5. Avvia un contenitore
Avvia un contenitore dall’immagine personalizzata:
docker run -it my-ubuntu-image
Questa immagine include strumenti come curl e vim.
5. Configurare un ambiente giapponese nei contenitori Ubuntu
L’immagine predefinita di Ubuntu utilizza un ambiente in inglese. Per usare il giapponese, è necessaria una configurazione aggiuntiva.
Impostare la locale giapponese
Per abilitare la visualizzazione e l’input giapponesi in un contenitore Ubuntu, installa la locale giapponese.
1. Installa i pacchetti richiesti
apt update
apt install -y language-pack-ja locales
2. Configura la locale
Genera e applica la locale:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. Applica le impostazioni
export LANG=ja_JP.UTF-8
Configurare l’input giapponese
Per inserire caratteri giapponesi nel terminale, installa ibus-mozc:
apt install -y ibus-mozc
Se usi applicazioni GUI, aggiungi le seguenti variabili d’ambiente:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
Usare applicazioni GUI
Per eseguire applicazioni GUI all’interno di un contenitore Docker, utilizza un server X sulla macchina host.
Avvia il contenitore con X11 abilitato:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. Ottimizzare e ridurre le immagini Docker
Le immagini Docker possono essere ottimizzate per migliorare la velocità di avvio dei contenitori e ridurre l’uso di spazio di archiviazione. Ecco diverse tecniche per creare immagini leggere.
Come creare un’immagine leggera basata su Ubuntu
L’immagine predefinita ubuntu:latest è relativamente grande. Usare un’opzione più leggera come ubuntu:minimal aiuta a ridurre le dimensioni del contenitore.
FROM ubuntu:minimal
Un’altra opzione è usare Alpine Linux, che è significativamente più piccolo di Ubuntu.
FROM alpine:latest
RUN apk add --no-cache bash curl
Usare Alpine può ridurre le dimensioni dell’immagine di diverse centinaia di megabyte.
Ridurre le dimensioni dell’immagine rimuovendo file non necessari
Puoi ridurre le dimensioni dell’immagine eliminando i file di cache non necessari creati da apt-get.
RUN apt update && apt install -y curl vim \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
In particolare, il comando rm -rf /var/lib/apt/lists/* rimuove gli elenchi dei pacchetti e i dati inutilizzati.
Utilizzo di build multi-stage
Le build multi-stage ti consentono di utilizzare gli strumenti solo durante il processo di build mantenendo l’immagine finale leggera.
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
In questo modo, eviti di includere strumenti di sviluppo nell’immagine finale, ottenendo un’impronta molto più piccola.
7. Esempio pratico: sviluppo di applicazioni in container Ubuntu
Questa sezione introduce come configurare ambienti di sviluppo all’interno di container Ubuntu.
Configurazione di un ambiente di sviluppo Python
Crea il seguente Dockerfile per configurare un ambiente di sviluppo Python in un container Ubuntu:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
Costruisci l’immagine ed esegui il container:
docker build -t python-dev .
docker run -it python-dev
Questo ambiente ti permette di utilizzare il comando python3 per lo sviluppo e il testing di script.
Configurazione di un ambiente di sviluppo Node.js
Per configurare un ambiente di sviluppo Node.js, utilizza il seguente Dockerfile:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
Costruisci ed esegui il container:
docker build -t node-dev .
docker run -it node-dev
Questo ambiente consente l’esecuzione di JavaScript e lo sviluppo di applicazioni con il comando node.
8. FAQ & Risoluzione dei problemi
L’uso di Docker può comportare vari problemi. Di seguito le domande più comuni e le soluzioni tipiche.
Differenza tra Docker e macchine virtuali
- Docker: Condivide il kernel del sistema operativo host, rendendolo leggero con avvio rapido dei container.
- Macchine virtuali (VM): Ogni VM include il proprio OS, risultando in un maggiore consumo di risorse e avvio più lento.
Docker eccelle nell’ottimizzazione delle risorse ed è adatto per ambienti di sviluppo e distribuzione automatizzata.
Persistenza dei dati nei container Ubuntu
Per conservare i dati anche dopo l’arresto di un container, utilizza mount di volumi:
docker run -v my_data:/data ubuntu
Anche se il container viene eliminato, i dati memorizzati nel volume my_data possono essere riutilizzati.
Errori comuni e soluzioni
1. Errore permission denied
Se vedi permission denied quando provi a eseguire Docker, il tuo utente potrebbe non appartenere al gruppo docker.
Aggiungi l’utente al gruppo Docker:
sudo usermod -aG docker $USER
Disconnettiti e riconnettiti per applicare la modifica.
2. Errore image not found
Se un’immagine è stata rimossa da Docker Hub, specifica un tag più recente durante il pull:
docker pull ubuntu:22.04
Specificare una versione esplicita garantisce che venga recuperata l’immagine corretta.
