【问题标题】:Docker volume: persist data on a remote hostDocker 卷:将数据持久保存在远程主机上
【发布时间】:2018-02-06 09:54:36
【问题描述】:

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

卷的良好用例

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

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

您能否给我一个“docker volume create”的示例以及如何使用它?

【问题讨论】:

    标签: docker docker-volume


    【解决方案1】:

    是的,卷是在 /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 网页中了解更多信息,但基本上这是使用卷的方法。每次停止/启动或创建/删除容器时,卷中的数据都会保留。

    我是这样做的,因为这不是你想要的“幸福之路”。您必须先挂载,然后再将数据存储在文件夹中,因为当您挂载卷时,文件夹将是空的,因为卷是空的。如果在挂载卷之前文件夹中有数据,您将看不到这些数据。因此,创建卷的方式取决于您的项目,但基本上,使用这两个命令将卷挂载到主机容器中。

    【讨论】:

    • 也许我不明白,但这不是卷和容器在同一主机上时的答案,而问题是卷在远程主机上时的答案吗?
    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2016-12-20
    • 2021-07-13
    • 2017-12-11
    相关资源
    最近更新 更多