【问题标题】:Mounting volumes with docker-compose使用 docker-compose 挂载卷
【发布时间】:2018-01-10 07:57:21
【问题描述】:

我正在研究如何使用 docker-compose 挂载卷以实现数据持久性,但我无法理解我阅读的所有示例。

https://www.linux.com/learn/docker-volumes-and-networks-compose

version: '2'

services:

 mysql:  

  image: mysql

  container_name: mysql

  volumes:

    - mysql:/var/lib/mysql

...

volumes:

 mysql:

好的,所以这在底部定义了一个名为 mysql 的卷,它在

中引用了这个卷
- mysql:/var/lib/mysql

mysql 映像如何知道在这个名为 mysql 的卷中查找?它是否只是为了查看它必须存储数据的所有卷或其他东西?

然后在其他示例中,我看到以下内容:

services:

 nginx:

   image: nginx

   depends_on:

     - ghost

   volumes:

     - ./default.conf:/etc/nginx/conf.d/default.conf

   ports:

     - "80:80"    

   networks:

     - proxy

这个例子不需要定义一个volume,为什么呢?

【问题讨论】:

    标签: docker-compose docker-volume


    【解决方案1】:

    您的 MySQL 数据将存储在由以下人员创建的命名卷 mysql 中:

    volumes:
     mysql:
    

    您可以使用docker volume ls 列出 docker 卷,“路径”将类似于:/var/lib/docker/volumes/mysql/date。当您在此文件夹中cd 时,您将看到与路径上 mysql 容器中的数据相同的数据:/var/lib/mysql。如果您在容器内执行,您将看到相同的数据。

    它是如何知道如何使用这条路径的? 好吧检查mysql的Dockerfile。这里是:

    VOLUME /var/lib/mysql
    

    简而言之:您的 mysql 的所有数据都存储在容器内的 /var/lib/mysql 中,并安装到主机上您命名的 docker 卷 mysql 中,该路径类似于 /var/lib/docker/volumes/mysql/data/

    下一部分是在nginx 容器内的路径/etc/nginx/conf.d/default.conf 上安装./default.conf(在您的主机上,相对路径)。

    Nginx 和 ghost 在这种情况下不需要命名卷,因为它们不需要保留特定数据。创建环境时,您将使用 Ghost 添加数据(写博客),但数据本身将存储在 mysql 数据库中。不在 Ghost 容器中。

    备注(如果您的第二个示例与 mysql 示例无关):ghost 的默认映像正在使用同一容器内的 sqlite3 db(=!每个容器的微服务,所以这很好开发,不在生产中)。但是,如果您要使用此设置,则需要为您的 sqlite 创建一个命名卷,该卷与 ghost 位于同一容器中。看看鬼的dockerfile。 如果你想使用 mysql,你可能需要在你的 ghost 容器上挂载一个配置文件来告诉容器:使用 mysql,你不需要为 ghost 命名 docker 卷,因为数据不会存储在 ghost 容器中,而是在 mysql 容器中。 为了在不使用带有命名卷的 mysql 的情况下保持上一个示例的持久性,您必须为该路径的 ghost 容器内的 sqlite db 添加一个卷:/var/lib/ghost/content。再次检查Dockerfile 以查看此路径。

    This blog post 解释如何在 docker-compose 中使用 mysql 设置 ghost

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      相关资源
      最近更新 更多