我创建了一些docker图像,我在一个上做了wget和apt-get install。
每次我退出泊坞窗实例后,再次返回图像,例如ubuntu:myimage它似乎产生了一个新的新版本,这意味着我所有的apt-get install和wget都“丢失”了。
我意识到它并不是持久的,所以我做了docker commit ...这是在docker中拥有“持久性”的正确方法吗?
我的问题:是否有可能持久而不会一直提交?
由于
答案 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。