Contenitori detached

Contenitore interattivo

Sullo host scrivere la procedura shell forever.sh:

i=0
while true
do
  sleep 2
  i=`expr $i + 1`
  echo $i
done

Lanciare un contenitore che esegue questa procedura:

docker run -ti alpine /bin/sh -c "$(cat forever.sh)"

L’output viene sul video del Linux host

Fermarlo: Ctrl-C

Verificare con docker ps -a che il contenitore è fermo

Test: perchè il seguente non funziona?

docker run alpine:3.7 /bin/sh forever.sh

Contenitore non interattivo

Lanciare un contenitore non interattivo che esegue la procedura:

docker run -d alpine /bin/sh -c "$(cat forever.sh)"

Il pronto torna subito, il contenitore è detached

Per vedere l’output:

docker logs IDalpine

Se ci si collega ad un contenitore detached:

docker attach IDalpine

Questo non è più detached e il suo output arriva sul terminale Linux host.

Quando si preme Ctrl-C torna il pronto host ma il contenitore è fermato.

Se invece si preme Ctrl-P Ctrl-Q torna il ptonto host e il contenitore non è fermato.

Rimuovere tutti i contenitori:

docker rm [-f] $(docker ps -qa)

-f - anche i contenitori non fermi

Cont States