2017-09-15 86 views
1

我运行了一些Docker Windows容器。我正在寻找一些方法来备份这些容器,而它们是正在运行。但是,当我尝试使用非标准的方式来备份容器,我得到这样的错误:备份码头窗口运行容器

PS C:\Users\roza> docker commit 908d6334d554 
Error response from daemon: windows does not support commit of a running container 
PS C:\Users\roza> docker export 908d6334d554 -o tar.tar 
Error response from daemon: the daemon on this platform does not support export of a container 

为什么不能提交/出口运行窗口的容器?

是否有一些(可能是非标准和非常棘手的,也许使用外部工具)的方式来创建这些容器的备份?

+0

不确定Windows容器是否有限制。不过你可以试试'码头工人暂停'然后'泊坞窗提交',看看它是否有助于 –

+0

其实,我只是得到另一个错误:从守护 错误响应:不能暂停容器908d6334d5548f09ba6d3eeac5b38f56025c44b7056ef56c39edae06c003c252:容器908d6334d5548f09ba6d3eeac5b38f56025c44b7056ef56c39edae06c003c252暂停过程中遇到错误:失败在Windows系统调用中:请求不受支持。 (0x32) –

回答

1

这可能不是你想听到的,但是...... 在容器世界中,不应该需要运行容器的备份。如果容器存在时丢失了某些东西,则应该更好地分割图像。任何必须在容器被杀死后仍然存在的东西(日志,资产甚至临时文件夹)都应该被映射为卷。这会让您更好地控制备份。

1

Windows容器的提交还涉及先停止它,然后提交。另一个限制是基于VSS的应用程序不会与容器进行互操作。正如前面的答案所建议的,容器的标准方法是简单地从图像中旋转一个新的容器。

1

来自Microsoft的Windows映像(这是所有Windows映像)都已获得许可,并且我认为该许可的一部分意味着您无法导出映像。缺乏暂停/取消暂停是因为潜在的实施。 Linux使用不在Windows上的cgroup进行暂停。只有Windows HyperV容器支持暂停,因为它们使用HyperV命令来实现它。


这就是说,备份在搬运工任何包括备份三两件事:

  • 图像注册表服务器
  • 用于容器的结构中,优选为搬运工-compose.yml文件
  • 体积数据

你不备份容器本身,它们是短暂的,处理像牛一样。卷数据将是文件系统目录,您将在此目录上使用标准备份工具。如果在容器运行时无法备份,请先停止容器,然后在备份完成后重新启动容器。