build立一个数据容器或指向docker中的现有文件?

目前,我正在从官方的鬼docker形象在Docker中build立一个鬼博客 – https://registry.hub.docker.com/_/ghost/

正如指出的那样,有两种方法可以将数据链接起来。

  1. 您也可以将图像指向您主机上的现有内容:

    docker运行 – 名称some-ghost -v / path / to / ghost / blog:/ var / lib / ghost ghost

2.另外,您可以使用一个数据容器,该容器的卷指向/ var / lib / ghost,然后引用它:

docker run --name some-ghost --volumes-from some-ghost-data ghost 

以前我用过第一种方式,而且我很疑惑为什么要构build数据容器,比第一种方式好吗?

Data容器的概念如下(引用下面的链接Raman Gupta)

“这个数据在逻辑上存在于一个数据专用的容器中,我(可能)不关心我的主机在物理上存在的位置”

为了完成这个陈述,我会补充一点:只要我可以访问并备份它。 这只是一个问题,你想如何访问它。 由于--volume-from可以附加到来自其他容器的卷,所以给你一个例子,如果你想用数据容器备份--volume-from “数据”,你将不得不这样做:

 docker run -it --rm --volume-from some-ghost my-backup-image > some-ghost-backup.tar.gz 

my-backup-image会做类似于: tar cv /var/lib/ghost | gzip tar cv /var/lib/ghost | gzip (我没有尝试或运行它,但这是基本的想法)。 你也可以用它来pipe理数据卷,并且有一个通用的方式来访问/导出(备份)卷,不pipe是谁在使用它: https : //github.com/cpuguy83/docker-volumes 。

拉曼古普塔写在那里: https : //medium.com/@ramangupta/why-docker-data-containers-are-good-589b3c6c749e

但是如果你关心实际的数据在哪里,并且/或者它必须在主机上容易访问,那也没关系。