卷和数据持久性

使用docker保存容器数据的最佳方法是什么? 我希望能够保留一些数据,并能够重新启动我的容器时,他们回来。 我已经阅读了这个有趣的post,但它不完全回答我的问题。

据我所知,我只有一个select:

docker run -v /home/host/app:/home/container/app 

这会将计数器文件夹挂载到主机上。

还有其他的select吗? 仅供参考,我不使用链接容器( – 链接)

使用卷是处理要从容器中保留的数据的最佳方法。 使用-v标志运行良好,你不应该遇到这个问题。

您也可以在Dockerfile使用VOLUME指令,这意味着您不必在运行时添加更多选项,但是它们与特定的容器紧密结合,您需要使用docker start ,而不是docker run (或者当然-v是过去创build的卷,可能位于/var/ somewhere)。

处理卷的常见方法是创build一个由-v定义的卷的数据卷容器然后,当您创build应用程序容器时,使用--volumes-from标志。 这将使您的新容器使用与您使用-v (数据容器)容器相同的容器。 当然,这可能看起来像是把问题转移到其他地方。

这使得在多个容器上共享卷非常简单。 也许你有一个容器为你的应用程序,另一个为logstash。

创build一个卷容器:这种格式的-v创build一个卷,目录例如/var/lib/docker/volume/d3b0d5b781b7f92771b7342824c9f136c883af321a6e9fbe9740e18b93f29b69这仍然是绑定挂载/容器/path/卷

 docker run -v /foo/bar/vol --name volbox ubuntu 

我现在可以使用这个容器,作为我的音量。

 docker run --volumes-from volbox --name foobox ubuntu /bin/bash root@foobox# ls /container/path/vol 

现在,如果我分配这两个容器,他们将工作。 该卷将始终可用于foobox,无论它部署到哪个主机。

当然,如果你不希望你的存储在/ var / lib / docker /

我build议你看一些由迈克尔·克罗斯比的优秀posthttps://docs.docker.com/userguide/dockervolumes/和docker文档https://docs.docker.com/userguide/dockervolumes/