码头工人是一个短暂的例子吗?

时间:2014-12-02 01:51:52

标签: docker

我创建了一些docker图像,我在一个上做了wget和apt-get install。

每次我退出泊坞窗实例后,再次返回图像,例如ubuntu:myimage它似乎产生了一个新的新版本,这意味着我所有的apt-get install和wget都“丢失”了。

我意识到它并不是持久的,所以我做了docker commit ...这是在docker中拥有“持久性”的正确方法吗?

我的问题:是否有可能持久而不会一直提交?

由于

4 个答案:

答案 0 :(得分:2)

docker run命令将从提供的图像中启动一个新容器。使用docker start重新启动先前停止的容器。

如果要将更改保存回图像,可以使用docker commit命令,但这几乎绝对不是您想要的。相反,使用Dockerfile构建图像并在需要进行更改时更新它。这样,您可以轻松地重新创建图像并进行更改,而无需从头开始。对于持久性(例如配置文件和数据库),使用卷,这些卷只是存储在Union File System外部的目录,作为主机上的普通目录。

答案 1 :(得分:1)

请勿使用docker run image,因为它会从图片中创建一个新容器。

您可以使用docker start container启动容器,或运行docker attach以附加正在运行的容器。

答案 2 :(得分:0)

docker ps -a 

docker commit ID yourname:tag

docker run -itd --name con yourname:tag

答案 3 :(得分:0)

如果您想构建可重复使用的图片,您很可能想要编写Dockerfile:逐步说明您要对基本图像进行的修改

如果您只是想关闭并恢复容器,就像它是一个Vagrant虚拟机,请使用

docker run --name $container_name $image_name

然后

docker [start|stop] $container_name

请注意,如果需要持久文件系统,Docker系统希望您显式声明volume