¿Puedo suspender y luego reanudar el contenedor Docker?


Me gustaría suspender el contenedor Docker y reanudarlo después de tiempo. ¿Cómo se puede hacer esto? Al suspender, quiero decir que debe guardar el estado del proceso en curso (por ejemplo, codificación de video) y luego reanudarlo en cualquier momento.

 33
Author: Mykola Pavlov, 2013-04-17

4 answers

A partir de la versión 0.12.0, Docker admite los comandos PAUSE y UNPAUSE para pausar y reanudar contenedores utilizando cgroup freezer.

 43
Author: David Gageot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-14 09:16:57

AFAIK en este momento no se puede hacer con pure docker, pero lxc lo soporta. He jugado un poco con docker y confirmó que esto se puede hacer con lxc-freeze -n <containtr.id> y reanudar las operaciones lxc-unfreeze -n <container.id> Pero en la v0.2. 0 docker ps solo te da acortar el id del contenedor incluso con-notrunc y la salida lxc-ls está vacía en mi sistema (extraño, necesito leer más al respecto, ya que docker usa lxc-start normal con parámetros, por lo que lxc-ps debería imprimir esto). Encontré el id del contenedor completo con lxc-ps. Sería bueno añadir docker freeze comando. Tal vez es hora de que aprenda algo de go:)

 7
Author: odk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-30 13:54:30
 3
Author: rektide,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-25 19:34:49

Docker acaba de lanzar un (hasta ahora) conjunto de características de almacenamiento de datos y volúmenes no documentados. tl; dr si utiliza la opción de línea de comandos -v, puede especificar una ruta de acceso para asignar fuera del contenedor a una ruta especial de docker (/var/lib/docker/volumes/{FULL_ID}) donde FULL_ID puede ser encontrado por docker inspect container_id. Un ejemplo es docker run -d -v /data danielvf/myapp:1.0 runapp que externalizaría el directorio /data en un volumen de docker.

Https://github.com/dotcloud/docker/issues/111

Hoja de ruta para esta característica: (aún no documenta su existencia): https://github.com/dotcloud/docker/wiki/Volumes-&-persistent-data-storage

 1
Author: funkotron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-19 23:56:35