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

时间:2018-02-06 09:54:37

标签: docker docker-volume

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

  

卷的良好用例

     
      
  • 如果要将容器的数据存储在远程主机或云提供程序上,而不是本地存储。
  •   

这是如何通过泊坞窗音量完成的?主机&var / lib / docker下的Aren#docker卷?

你能给我一个例子" docker volume create"这个以及它如何被利用?

1 个答案:

答案 0 :(得分:3)

是的,卷是在/ 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 /是示例你需要坚持的文件夹。

您也可以使用此卷存储应用程序配置,数据库数据或配置等。也许,取决于你需要存储什么,你可以使用bind mount或卷,或者如果你的主机在linux中,你可以使用tmpfs挂载。

就这么简单,你可以在docker网页上阅读更多相关内容,但基本上这就是如何使用卷。每次停止/启动或创建/删除容器时,卷中的数据都将保持不变。

我这样做,因为这不是你想要的“快乐路径”。在将数据存储到文件夹之前必须先装入,因为在装入卷时,该文件夹将为空,因为该卷为空。如果在装入卷之前文件夹中有数据,则数据将不可见。因此,它取决于您的项目创建卷的方式,但基本上,使用这两个命令将卷装入主机容器。