我想暂停Docker容器并在之后恢复它。怎么做到这一点? 暂停我的意思是它应该保存正在进行的过程的状态(例如视频编码),然后随时恢复它。
答案 0 :(得分:50)
截至Version 0.12.0,Docker支持使用cgroup freezer暂停和恢复容器的PAUSE
和UNPAUSE
命令。
答案 1 :(得分:7)
AFAIK现在无法用纯粹的docker完成,但是lxc支持它。我和docker一起玩了很多,并确认可以这样做
lxc-freeze -n <containtr.id>
并恢复运作
lxc-unfreeze -n <container.id>
但是在v0.2.0中,即使使用-notrunc并且lxc-ls输出在我的系统上是空的,docker ps也只会缩短封装ID(奇怪的是,需要阅读更多关于它的信息,因为docker使用普通的lxc-start和params所以lxc-ps应该打印这个)。我找到了lxc-ps
的完整容器ID。添加docker freeze命令会很不错。也许现在是我学习一些东西的时候了:))
答案 2 :(得分:3)
这是最近的deck on the recent experimental integration of Checkpoint/Restore In Userspace (CRIU) + Docker。
答案 3 :(得分:1)
Docker刚刚发布了一个(尚未)未记录的卷和数据存储功能集。 tl; dr如果使用-v
命令行选项,则可以指定在容器外部映射到特殊泊坞窗路径(/var/lib/docker/volumes/{FULL_ID}
)的路径,其中docker inspect container_id
可以找到FULL_ID。一个示例是docker run -d -v /data danielvf/myapp:1.0 runapp
,它将/data
目录外部化为docker卷。
https://github.com/dotcloud/docker/issues/111
此功能的路线图:(尚未记录其存在): https://github.com/dotcloud/docker/wiki/Volumes-&-persistent-data-storage
答案 4 :(得分:0)