如何保存一个Docker容器状态?

我试图学习Docker的细节,而且我对保存图像的前景感到困惑。

我运行了基本的Ubuntu镜像,安装了Anaconda Python和其他一些东西…所以现在最好的办法是保存我的进度? 保存,提交,导出?

这些似乎都没有像Virtual Box那样工作,Virtual Box为虚拟机提供了一个明显的保存状态文件。

通常的方法是至less通过一个docker commit :这将冻结你的容器的状态到一个新的形象。

注意:根据anchovylegend的 评论 ,这不是最好的做法,使用Dockerfile可以正式build模图像内容,并确保您可以重build/重现其初始状态。

然后,您可以使用docker images镜像在本地列出该镜像,然后重新运行。

例:

 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky 197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton $ docker commit c3f279d17e0a svendowideit/testimage:version3 f5283438590d $ docker images REPOSITORY TAG ID CREATED SIZE svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB 

之后, 如果您部署了注册服务器 ,则可以将图像推送到所述服务器。

使用docker文件来处理这种情况。

使用MongoDB的Ubuntu映像示例:

 FROM ubuntu MAINTAINER Author name RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list RUN apt-get update RUN apt-get -y install apt-utils RUN apt-get -y install mongodb-10gen #RUN echo "" >> /etc/mongodb.conf CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] 

另请参阅编写Docker文件的最佳实践https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/