首页 文章

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

提问于
浏览
3

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

卷的良好用例当您想要将容器的数据存储在远程主机或 Cloud 提供程序上而不是本地时 .

这是如何用docker音量完成的?主机的/ var / lib / docker下不是docker卷吗?

你能给我一个关于“码头量创造”的例子以及如何利用它吗?

1 回答

  • 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 mounts .

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

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

相关问题