Docker卷:在远程主机上保留数据

7

https://docs.docker.com/storage/#more-details-about-mount-types

卷的好用例子

  • 当您想将容器数据存储在远程主机或云提供商上而不是本地时。

使用docker volume如何实现这一点?难道docker volume不是位于主机的 /var/lib/docker 下吗?

请给我一个关于此的 "docker volume create" 示例以及如何利用它的例子。

1个回答

0

是的,卷是在 /var/lib/docker/volumes/ 下创建的,因此您需要将此卷与您想要持久化的文件夹或您要持久化数据的位置链接起来。

例如:

您有一个名为 ImageExample 的镜像和一个位于 /var/www/MyProject/ 下的项目。

首先,您需要创建新的卷并分配一个名称。

$ docker volume create --name VolumeExample

# if you run: docker volume ls, they list all your volumes available

$ docker volume ls
DRIVER              VOLUME NAME
local               JbpmVolume1
local               VolumeExample

其次,您需要将新卷链接到容器中的文件夹。

$ docker run -v VolumeExample:/var/www/MyProject/ -p 8080:8080 MyImage

run是创建容器的命令,-p用于映射本地和主机端口,MyImage是此示例中使用的镜像,VolumeExample是先前创建的卷,/var/www/MyProject/是需要持久化的示例文件夹。

您可以使用此卷来存储应用程序配置、数据库数据或配置等等。也许,根据您需要存储的内容,您可以使用绑定挂载或卷,如果您的主机在Linux上,您还可以使用tmpfs挂载。

就这么简单,您可以在Docker网页上阅读更多,但基本上这就是如何使用卷。每次停止/启动或创建/删除容器时,您卷中的数据将保留。

我以这种方式做,因为这不是您想要的“正常路径”。您必须在将数据存储到文件夹之前进行挂载,因为当您挂载卷时,文件夹将为空,因为卷为空。如果在挂载卷之前已经在文件夹中有数据,则这些数据对您来说将不可见。因此,取决于您的项目,您将创建卷的方式,但基本上,使用这两个命令将卷挂载到主机容器中。


11
也许我理解有误,但是这个答案是否针对在同一主机上的容器和卷,而问题是针对卷在远程主机上的情况吗? - Michael Johansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接