Lo sapevi?

La nostra rete è interamente "Layer 3 to the edge" al fine di garantire la massima affidabilità e scalabilità!

Come usare Docker per deploy veloci su VPS (guida pratica e completa)

Estimated reading: 2 minutes 11 views

1. Preparazione VPS (Ubuntu)

Aggiorna il sistema:

				
					apt update && sudo apt upgrade -y
				
			

Installa pacchetti base:

				
					apt install ca-certificates curl gnupg -y
				
			

2. Installazione Docker (metodo ufficiale, consigliato)

Evita docker.io (spesso non aggiornato). Usa il repository ufficiale Docker.

Aggiungi chiave GPG:

				
					install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
				
			

Aggiungi repository:

				
					echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
				
			

Installa Docker:

				
					apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
				
			

Verifica:

				
					docker --version
docker compose version
				
			

3. Permessi (evitare sudo)

				
					sudo usermod -aG docker $USER
				
			

4. Struttura progetto (standard reale)

				
					/app
 ├── Dockerfile
 ├── docker-compose.yml
 ├── .env
 └── codice
				
			

5. Esempio reale: deploy Node.js su Ubuntu VPS

Dockerfile (ottimizzato)

				
					FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000

CMD ["node", "server.js"]
				
			

Dockerfile (ottimizzato)

				
					version: "3.9"

services:
  app:
    build: .
    container_name: app_node
    ports:
      - "3000:3000"
    restart: unless-stopped
    env_file:
      - .env
				
			

6. Deploy (1 comando)

				
					docker compose up -d --build
				
			

7. Aggiornamento rapido (deploy continuo)

				
					git pull
docker compose up -d --build
				
			

Tempo medio: 10–60 secondi

8. Debug e controllo

Container attivi:

				
					docker ps
				
			

Log:

				
					docker logs -f app_node
				
			

Entrare nel container:

				
					docker exec -it app_node sh
				
			

9. Persistenza dati (fondamentale su Ubuntu VPS)

Esempio database:

				
					services:
  db:
    image: postgres:15
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  pg_data:
				
			

Senza volumi → perdi tutto al restart.

10. Deploy multi-servizio (pattern reale)

				
					version: "3.9"

services:
  app:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  pg_data:
				
			

11. Reverse proxy (produzione su Ubuntu)

Per usare dominio + HTTPS:

Opzioni solide:

  • Nginx (manuale)
  • Traefik (automatico con Docker)

Esempio rapido (concetto):

  • container app → porta interna
  • proxy → espone 80/443
  • certificati SSL automatici 

12. Ottimizzazioni specifiche Ubuntu

✔ Usa ufw per firewall:

				
					ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable
				
			

✔ Controlla risorse:

				
					htop
				
			

✔ Pulizia immagini:

				
					docker system prune -a
				
			

Leave a Comment

Share this Doc

Come usare Docker per deploy veloci su VPS (guida pratica e completa)

Or copy link

CONTENTS