-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Docker Compose Opzioni


Docker Compose le opzioni Ports e Scale

Opzioni Docker Compose

In un file `docker-compose.yml`, le opzioni `scale` e `ports` possono essere utilizzate per gestire rispettivamente il numero di istanze di un servizio e le mappature delle porte tra l'host e il container.
Tuttavia, è importante notare che la direttiva `scale` è stata rimossa dalle versioni più recenti di Docker Compose e invece viene gestita con il comando `docker-compose up --scale`.

Ecco un esempio di file `docker-compose.yml` che mostra come utilizzare `ports` e come gestire il dimensionamento dei servizi con `docker-compose up --scale`:


version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    deploy:
      replicas: 3


Spiegazione
  • Versione: Definisce la versione del formato del file Docker Compose.
    In questo caso, viene utilizzata la versione 3.8.

  • Services: Elenca i servizi definiti nel file.
    In questo esempio, c'è un solo servizio chiamato `web`.

  • Image: Specifica l'immagine Docker da utilizzare per il servizio. Qui viene utilizzata l'immagine `nginx:latest`.

  • Ports: Mappa la porta 80 del container alla porta 8080 dell'host. In questo modo, è possibile accedere al servizio web esposto dal container tramite `http://localhost:8080`.

  • Deploy: La sezione `deploy` contiene informazioni sulla distribuzione del servizio. La direttiva `replicas` specifica il numero di istanze (repliche) del servizio da eseguire.
    Anche se `replicas` è più comunemente usato con Docker Swarm, in Docker Compose possiamo utilizzare un comando per ridimensionare il numero di istanze.

Dimensionamento dei servizi

Per ridimensionare i servizi utilizzando Docker Compose, si può usare il comando che segue


docker-compose up --scale web=3


Questo comando avvia tre istanze del servizio `web` specificato nel file `docker-compose.yml`.


Esempio completo del file docker-compose.yml con più servizi


version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  app:
    image: myapp:latest
    ports:
      - "3000:3000"
    deploy:


In questo esempio, ci sono due servizi: `web` e `app`.
Il servizio `web` esegue Nginx e mappa la porta 80 del container alla porta 8080 dell'host.
Il servizio `app` esegue un'applicazione personalizzata (ipoteticamente chiamata `myapp`) e mappa la porta 3000 del container alla porta 3000 dell'host, con due repliche.

Per ridimensionare il servizio `app`.

docker-compose up --scale app=2


In sintesi, il file `docker-compose.yml` definisce le configurazioni dei servizi e le mappature delle porte, mentre il comando `docker-compose up --scale` gestisce il dimensionamento delle istanze dei servizi.