Ecco alcuni comandi di base di Docker:
Vedi anche:https://github.com/wsargent/docker-cheat-sheet
Installazione dell'ultimo ambiente Docker in Linux:
curl -sSL https://get.docker.com/ | sh
Avvia il terminale Docker in OSX
bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'
Informazioni: I nomi dei contenitori senza '/' nel nome si riferiscono a modelli di contenitori pubblici di base
I nomi dei contenitori con '/' si riferiscono ai contenitori degli utenti nel formato:username/BasicContainer
I nomi dei contenitori con ':' si riferiscono a un tag che viene normalmente utilizzato come sovversione dei contenitori base/utente
Cerca le immagini nel repository di Internet Dockerdocker search ubuntu
Scarica un'immagine della finestra mobile da Internet nel repository localedocker pull ubuntu:14.04
Elenca le immagini della finestra mobile locale:docker images
Esegui un'immagine creata da te (myname/ubuntu:tmpl_1) in background dando al contenitore il nome MyUbuntudocker run -itd --name=MyUbuntu myname/ubuntu:tmpl_1
Allega a un contenitore per lavorarci (premi 2 x Invio per ottenere bash in seguito)docker attach MyUbuntu
Per uscire da un container senza che venga interrotto automaticamente:CTRL-P + CTRL-Q
Quando viene emesso un ^D(o comando di uscita) in una bash del contenitore, il contenitore viene quindi arrestato. Per riavviarlo es.docker start MyUbuntu
Elenca i contenitori in esecuzionedocker ps
Elencare tutti i contenitori della finestra mobile (in esecuzione e arrestati)docker ps -a
Note sui contenitori in esecuzione:docker run -t -i
→ può essere scollegato con ^P^Q e ricollegato con docker attachdocker run -i
→ non può essere staccato con ^P^Q; interromperà stdindocker run
→ non può essere staccato con ^P^Q; può cliente SIGKILL; può ricollegarsi con Docker Attach
RISOLUZIONE DEI PROBLEMI:
1) Se viene visualizzato questo messaggio di errore dopo aver fornito un comando docker:Error response from daemon: client is newer than server (client API version: x.xx, server API version: y.yy)
Esegui semplicemente il seguente comando per sincronizzare le loro versioni:docker-machine upgrade
Creazione di una nuova immagine Docker locale dall'immagine tirata Public(Internet)
#### Il metodo COMMIT ####
Esegui il contenitore in base a questa immaginedocker run -t -i ubuntu:14.04 /bin/bash
Nota:ricorda l'ID contenitore che si trova nel prompt di bash (necessario per crearne uno nuovo basato su questo)
es. root@ba7cbe2cd3ce:/# (ba7cbe2cd3ce è l'ID contenitore)
Installa i pacchetti software desiderati (apt-get update &&apt-get install …. )
es. apt-get update &&apt-get -y upgrade; apt-get install mc ssh fail2ban nmap ngrep iftop iotop htop
Al termine, arresta il contenitore disconnettendosi da bash conexit or ^D
Ora salva la nuova immagine in locale:docker commit -m "My special container template" -a "My Name" ba7cbe2cd3ce myname/ubuntu:v001
Questo salverà localmente il contenitore modificato come nuova immagine denominata:myname/ubuntu:v001
Per controllare:docker images
#### Il metodo 'Dockerfile'
Crea una directory in cui crei un file speciale chiamato Dockerfile
dove verranno scritte le istruzioni su come costruire la nuova immagine.mkdir ubuntu_template_001
cd ubuntu_template_001
touch Dockerfile
mcedit Dockerfile
————– Contenuto —————-# This is a comment
FROM ubuntu:14.04
MAINTAINER My Name <mmyname @mydomain.com>
RUN apt-get update && apt-get install -y mc ssh fail2ban nmap ngrep iftop iotop htop
RUN apt-get -y install postfix
– Salva il file ed esegui il comando seguente per creare l'immagine:docker build -t myname/ubuntu_template_001 .
Nota:il '.' alla fine del comando indica dove si trova il Dockerfile
Ti verrà presentato tutto l'output dell'installazione e l'ID immagine alla fine come segue:
—> 8578743d7b30
– Diamo un'occhiata a tutte le immagini create:docker images
Risultato:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 8578743d7b30 3 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 20 minutes ago 318.6 MB
– Vediamo che l'immagine con l'ID 8578743d7b30 non ha un nome o un tag.
Ora gli diamo un nome:tagdocker tag 8578743d7b30 myname/ubuntu:v002
– Controlla di nuovo l'elenco delle immagini:docker images
Risultato: REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/ubuntu v002 8578743d7b30 16 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 33 minutes ago 318.6 MB
– Ora possiamo eseguire un contenitore basato su questa nuova immaginedocker run -it --name "Server2" myname/ubuntu:v002 bash -c 'service ssh start ; ifconfig eth0; bash'
Eliminazione di un'immagine dal repository localedocker rmi michel/ubuntu:v002
Rimozione di un container dal sistema Docker localedocker rm ContainerName
odocker rm ContainerID
Per eseguire un programma all'interno di un container in esecuzione ma non collegato:docker exec -t -i ContainerName bash -c 'command'