我正在尝试了解 Docker 的来龙去脉,但我对保存图像的前景感到困惑。
我运行了基本的 Ubuntu 映像,安装了 Anaconda Python 和其他一些东西……那么现在保存进度的最佳方法是什么?保存、提交、导出?
这些似乎都不像 VirtualBox 那样工作,它为您的虚拟机提供了一个明显的保存状态文件。
原文由 hobscrk777 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试了解 Docker 的来龙去脉,但我对保存图像的前景感到困惑。
我运行了基本的 Ubuntu 映像,安装了 Anaconda Python 和其他一些东西……那么现在保存进度的最佳方法是什么?保存、提交、导出?
这些似乎都不像 VirtualBox 那样工作,它为您的虚拟机提供了一个明显的保存状态文件。
原文由 hobscrk777 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常的方法是至少通过 docker commit:这会将容器的状态冻结到一个新的图像中。
但是要知道,与 Hyper-V 或 VMware 中的虚拟机保存状态不同,容器的“保存状态”没有可靠的方法。这也是 docker 的一个缺点。
它似乎只保存对持久文件更改所做的更改。因此,当您从新图像再次启动容器时,依赖项和执行的所有运行命令将不会产生相同的效果。
这就是为什么必须更改 docker 文件的理想选择,简而言之,docker 系统中没有像我们在虚拟机中那样的保存状态功能。内存内容总是丢失。
原文由 Shahid Roofi Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答802 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
1 回答969 阅读
通常的方法是至少通过
docker commit
:这会将容器的状态冻结为新图像。注意:正如 anchovylegend 所 评论 的,这不是最佳实践,使用 Dockerfile 可以让您对图像内容进行正式建模,并确保您可以重建/重现其初始状态。
然后,您可以使用
docker images
在本地列出该图像,然后再次运行它。例子:
之后, 如果您已经部署了一个注册服务器,您可以将您的图像推送到该服务器。