Differenze tra le versioni di "Docker"

Da GolemWiki.
Jump to navigation Jump to search
(Creata pagina con "{{Note |type=attention |text=Se stai usando Docker per realizzare un servizio al GOLEM, allora dovresti considerare di scambiare quattro chiacchiere col sistemista e di entrar...")
 
m (Aggiunta categoria Sysop)
 
(4 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
βˆ’
{{Note
+
Questa pagina raccoglie alcuni comandi utili su Docker.
βˆ’
|type=attention
 
βˆ’
|text=Se stai usando Docker per realizzare un servizio al GOLEM, allora dovresti considerare di scambiare quattro chiacchiere col sistemista e di entrare a far parte del gruppo del sistema automatico ''argilla'' su git.
 
βˆ’
}}
 
  
βˆ’
== Flusso di lavoro ==
+
== Dove mette i volumi Docker? ==
βˆ’
Ho un programma e voglio farne un container docker per usarlo nell'infrastruttura GOLEM. Che fare?
+
Se non si impostano i volumi del conatiner Docker li crea automaticamente in un "suo" percorso.
 +
Per sapere dove il container mette i nostri dati si possono utilizzare questi comandi:
  
βˆ’
Sono il programmatore:
+
Mostrare l'elenco dei container in esecuzione. Da questo elenco si prende l'ID del container che ci interessa.
βˆ’
# Scrivere il Dockerfile per il proprio programma
+
docker ps
βˆ’
# Creare l'immagine per il proprio programma
 
  
βˆ’
Sono il sistemista:
+
Mostrare l'elenco dei volumi del container. Il risultato sarΓ  in formato JSON. Il parametro ''ID'' Γ¨ quello che abbiamo preso dal <code>docker ps</code>
βˆ’
# Scrivere il docker-compose.yml per il servizio
+
docker inspect -f '{{ .Mounts }}' <ID>
βˆ’
# Avviare il servizio
 
  
βˆ’
Segue un esempio di flusso di lavoro per [https://acme.com/software/thttpd/ thttpd].
+
E' possibile usare il comando
 +
docker inspect <ID>
 +
per ottenere l'elenco completo (sempre in formato JSON) delle informazioni di configurazione del container. Tra queste, la lista dei volumi e dei relativi mount point identificate da <code>"Mounts":</code>
  
βˆ’
== Dockerfile ==
+
Al posto del parametro ''ID'' e' sepre possibile utilizzare il nome assegnato al container, nome che Γ¨ anch'esso reperibile dall'elenco ottenuto con <code>docker ps</code>.
βˆ’
''Dockerfile''
 
βˆ’
  FROM alpine:latest
 
βˆ’
  RUN apk add thttpd
 
βˆ’
  ENTRYPOINT ["thttpd", "-D", "-d", "/html"]
 
βˆ’
 
 
βˆ’
== Creare l'immagine e taggarla ==
 
βˆ’
docker build --tag hub.docker.golem.linux.it/thttpd:latest .
 
βˆ’
 
 
βˆ’
== Creare il servizio ==
 
βˆ’
Il servizio si chiamerΓ  ''webserver''.
 
βˆ’
''docker-compose.yml''
 
βˆ’
  version: "3.3"
 
βˆ’
  services:
 
βˆ’
    webserver:
 
βˆ’
      image: hub.docker.golem.linux.it/thttpd:latest
 
βˆ’
      restart: unless-stopped
 
βˆ’
      ports:
 
βˆ’
        - "8000:80"
 
βˆ’
      volumes:
 
βˆ’
        - /srv/webserver:/html
 
βˆ’
 
 
βˆ’
dove:
 
βˆ’
* ''webserver'' Γ¨ il nome del servizio, usato da docker-compose per nominare i container automaticamente
 
βˆ’
* ''image'' immagine docker, con tanto di dominio del repository
 
βˆ’
* ''ports'' sono espresse nella forma ''host:container''
 
βˆ’
* ''volumes'': usare sempre una cartella nella forma ''/srv/$nome_servizio'', per coerenza
 
βˆ’
 
 
βˆ’
== Avvio ==
 
βˆ’
docker-compose up
 
βˆ’
(eventualmente usare anche ''-d'' per mandarlo in background)
 
βˆ’
 
 
βˆ’
== Pushare immagine ==
 
βˆ’
Sul repository privato:
 
βˆ’
docker push hub.docker.golem.linux.it/thttpd:latest
 
βˆ’
 
 
βˆ’
Ma se non l'hai mai fatto, la prima volta il repository richiede l'autenticazione:
 
βˆ’
docker login hub.docker.golem.linux.it
 
  
 
[[Category:Howto]]
 
[[Category:Howto]]
 +
[[Category:Sysop]]

Versione attuale delle 09:07, 15 apr 2023

Questa pagina raccoglie alcuni comandi utili su Docker.

Dove mette i volumi Docker?

Se non si impostano i volumi del conatiner Docker li crea automaticamente in un "suo" percorso. Per sapere dove il container mette i nostri dati si possono utilizzare questi comandi:

Mostrare l'elenco dei container in esecuzione. Da questo elenco si prende l'ID del container che ci interessa.

docker ps

Mostrare l'elenco dei volumi del container. Il risultato sarΓ  in formato JSON. Il parametro ID Γ¨ quello che abbiamo preso dal docker ps

docker inspect -f 'Template:.Mounts' <ID>

E' possibile usare il comando

docker inspect <ID>

per ottenere l'elenco completo (sempre in formato JSON) delle informazioni di configurazione del container. Tra queste, la lista dei volumi e dei relativi mount point identificate da "Mounts":

Al posto del parametro ID e' sepre possibile utilizzare il nome assegnato al container, nome che Γ¨ anch'esso reperibile dall'elenco ottenuto con docker ps.