【发布时间】:2020-05-19 20:01:43
【问题描述】:
我想暂停一个 Docker 容器并稍后恢复。如何才能做到这一点? 暂停是指它应该保存正在进行的进程的状态(例如视频编码),然后随时恢复。
【问题讨论】:
标签: docker
我想暂停一个 Docker 容器并稍后恢复。如何才能做到这一点? 暂停是指它应该保存正在进行的进程的状态(例如视频编码),然后随时恢复。
【问题讨论】:
标签: docker
截至Version 0.12.0,Docker 支持PAUSE 和UNPAUSE 命令使用 cgroup freezer 暂停和恢复容器。
【讨论】:
Error response from daemon: Cannot pause container f8c3.........: Windows: Containers cannot be paused
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,所以 lxc-ps应该打印这个)。我找到了带有lxc-ps 的完整容器ID。添加 docker freeze 命令会很好。也许是时候让我学习一些围棋了:)
【讨论】:
docker inspect $container获取长id。
docker -d -e lxc 重新运行它
Docker 刚刚发布了一个(迄今为止)未记录的卷和数据存储功能集。 tl;dr 如果您使用-v 命令行选项,您可以指定一个路径以将容器外部映射到一个特殊的 docker 路径 (/var/lib/docker/volumes/{FULL_ID}),其中 FULL_ID 可以通过docker inspect container_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
【讨论】: