Я хотел бы приостановить контейнер Docker и возобновить его после. Как это можно сделать? Под приостановлением я подразумеваю, что он должен сохранять состояние текущего процесса (например, кодирование видео), а затем возобновлять его обратно в любое время.
Могу ли я приостановить, а затем возобновить контейнер Docker?
Ответ 1
Как Версия 0.12.0, Docker поддерживает команды PAUSE
и UNPAUSE
для приостановки и возобновления контейнеров с использованием морозильника cgroup.
Ответ 2
AFAIK прямо сейчас не может быть сделано с чистым докером, но lxc поддерживает это. Я немного поиграл с докером и подтвердил, что это можно сделать с помощью
lxc-freeze -n <containtr.id>
и возобновить операции
lxc-unfreeze -n <container.id>
Но в v0.2.0 docker ps дает вам только сокращать идентификатор с идентификатором даже с выходом -notrunc и lxc-ls в моей системе пуст (странно, нужно больше узнать об этом, поскольку докер использует простой lxc-start с параметрами, поэтому lxc-ps должен напечатать это). Я нашел полный идентификатор контейнера с lxc-ps
. Было бы неплохо добавить команду замораживания докеров. Может быть, мне пора научиться некоторым:)
Ответ 3
Вот недавняя .
Ответ 4
Docker только что выпустил (пока что) недокументированные тома и набор функций хранения данных. tl; dr, если вы используете параметр командной строки -v
, вы можете указать путь для отображения за пределами контейнера на специальный путь докера (/var/lib/docker/volumes/{FULL_ID}
), где FULL_ID можно найти с помощью docker inspect container_id
. Примером является docker run -d -v /data danielvf/myapp:1.0 runapp
, который будет экстернализировать каталог /data
в объеме докера.
https://github.com/dotcloud/docker/issues/111
Дорожная карта для этой функции: (еще не документирует ее существование): https://github.com/dotcloud/docker/wiki/Volumes-&-persistent-data-storage
Ответ 5
Команды:
$ docker pause <containerName>
$ docker unpause <containerName>
Вот демо из них в действии: