Vorrei sospendere il contenitore Docker e riprenderlo dopo un po '. Come questo può essere fatto? Sospendendo intendo che dovrebbe salvare lo stato del processo in corso (ad es. Codifica video) e quindi riprenderlo in qualsiasi momento.Posso sospendere e poi riprendere il contenitore Docker?
risposta
A partire dal Version 0.12.0, Docker supporta PAUSE
e UNPAUSE
comandi per mettere in pausa e riprendere i contenitori usando cgroup congelatore.
AFAIK al momento non può essere eseguito con docker puro ma lxc lo supporta. Ho giocare po 'con finestra mobile e ha confermato che questo può essere fatto con lxc-freeze -n <containtr.id>
e per riprendere le operazioni lxc-unfreeze -n <container.id>
Ma in v0.2.0 finestra mobile ps vi dà solo accorciare containter id anche con uscita -notrunc e LXC-LS è vuoto sul mio sistema (strano, ho bisogno di saperne di più, dato che la finestra mobile usa semplicemente lxc-start con params quindi lxc-ps dovrebbe stamparlo). Ho trovato l'ID contenitore completo con lxc-ps
. Sarebbe bello aggiungere il comando freeze docker. Forse è il momento per me di imparare un po ':)
È possibile utilizzare 'finestra mobile ispeziona $ container' per ottenere l'ID lungo. – ZeissS
Ho aggiunto l'ID contenitore completo quando si utilizza -notrunc e la modifica è già presente nel ramo principale git docker. Ma grazie per il suggerimento. – odk
Ho trovato, che dalla versione 0.9, LXC non è più il driver predefinito per la finestra mobile (https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/) . Tuttavia esiste la possibilità di usare lxc. Per fare ciò, devi uccidere il daemon docker ed eseguirlo di nuovo con un commutatore 'docker -d -e lxc' – noisy
Docker ha appena rilasciato un (ancora) volume non documentato e set di funzionalità di archiviazione dei dati. tl; dr se si utilizza l'opzione della riga di comando -v
è possibile specificare un percorso per mappare all'esterno del contenitore su un percorso speciale finestra mobile (/var/lib/docker/volumes/{FULL_ID}
) dove FULL_ID può essere trovato da docker inspect container_id
. Un esempio è docker run -d -v /data danielvf/myapp:1.0 runapp
che esternalizza la directory /data
in un volume di finestra mobile.
https://github.com/dotcloud/docker/issues/111
tabella di marcia per questa funzione: (ancora non documentano la sua esistenza): https://github.com/dotcloud/docker/wiki/Volumes-&-persistent-data-storage
Quando blocchi un contenitore, vuol dire che non può più accettare alcuna richiesta? Cosa succede quando si invia una richiesta? È in coda? Dropped? – CMCDragonkai
@David Gageot: esiste la possibilità di clonare i contenitori di finestre mobili in pausa? – noisy
@noisy Non che io sappia. La soluzione più vicina è usare CRIU http://criu.org/Docker –