我正在尝试学习Docker的细节,我对保存图像的前景感到困惑。
我运行了基本的Ubuntu映像,安装了Anaconda Python和其他一些东西......那么现在保存进度的最佳方法是什么?保存,提交,导出?
这些似乎都与VirtualBox的工作方式相同,VirtualBox为您的虚拟机提供了明显的保存状态文件。
我正在尝试学习Docker的细节,我对保存图像的前景感到困惑。
我运行了基本的Ubuntu映像,安装了Anaconda Python和其他一些东西......那么现在保存进度的最佳方法是什么?保存,提交,导出?
这些似乎都与VirtualBox的工作方式相同,VirtualBox为您的虚拟机提供了明显的保存状态文件。
通常的方法是至少通过一个 docker commit
:这会将容器的状态冻结为新图像。
注意:作为 评论 通过 anchovylegend,这不是最佳实践,使用Dockerfile可以正式建模图像内容,并确保您可以重建/重现其初始状态。
然后,您可以在本地列出该图像 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 commit
:这会将容器的状态冻结为新图像。
注意:作为 评论 通过 anchovylegend,这不是最佳实践,使用Dockerfile可以正式建模图像内容,并确保您可以重建/重现其初始状态。
然后,您可以在本地列出该图像 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"]