Docker compose 使用docker compose装载卷
我正在研究如何使用docker compose装载卷以实现数据持久性,但我很难理解我阅读的所有示例 这在底部定义了一个名为mysql的卷,它在中引用了这个卷Docker compose 使用docker compose装载卷,docker-compose,docker-volume,Docker Compose,Docker Volume,我正在研究如何使用docker compose装载卷以实现数据持久性,但我很难理解我阅读的所有示例 这在底部定义了一个名为mysql的卷,它在中引用了这个卷 - mysql:/var/lib/mysql mysql映像如何知道在这个名为mysql的卷中的外观?它只是为了查看所有存储数据或其他内容的卷而设计的吗 然后在其他示例中,我看到以下内容: services: nginx: image: nginx depends_on: - ghost volu
- 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
本例不需要定义卷,这是为什么?您的MySQL数据将存储在命名卷MySQL中,MySQL由以下人员创建:
volumes:
mysql:
您可以使用docker volume ls
列出docker卷,“路径”类似于:/var/lib/docker/volumes/mysql/date
。当您在该文件夹中cd
时,您将看到与mysql容器中的数据相同的数据,路径为:/var/lib/mysql
。如果在容器中执行,您将看到相同的数据
它如何知道如何使用此路径?
好的,检查一下mysql的性能。这是:
VOLUME /var/lib/mysql
简而言之:mysql的所有数据都存储在容器内的/var/lib/mysql
中,并装载到主机上命名的docker卷mysql中,其路径类似于/var/lib/docker/volumes/mysql/data/
下一部分是将/default.conf
(在主机上,相对路径)装载到/etc/nginx/conf.d/default.conf
容器中的路径上
在这种情况下,Nginx和ghost不需要命名卷,因为它们不需要保留特定的数据。创建环境时,将使用Ghost(写博客)添加数据,但数据本身将存储在mysql数据库中。不在幽灵容器中
备注(如果您的第二个示例与mysql示例无关):ghost的默认映像与同一容器中的sqlite3 db一起工作(!每个容器都有microservice,因此这可以开发,而不是在生产中)。但是,如果要使用此设置,则需要为sqlite创建一个命名卷,该卷与ghost位于同一容器中。看一看鬼魂。
如果您想使用mysql,您可能需要将一个配置文件装载到您的ghost容器中,以告知容器:使用mysql,您将不需要ghost的命名docker卷,因为数据不会存储在ghost容器中,而是存储在mysql容器中。
要保持上一个示例的持久性而不使用mysql和命名卷,您必须为sqlite db添加一个卷,该卷位于此路径的ghost容器内:/var/lib/ghost/content
。再次检查以查看此路径
解释如何在docker compose中使用mysql设置ghost您的mysql数据将存储在命名卷mysql中,该卷由以下人员创建:
volumes:
mysql:
您可以使用docker volume ls
列出docker卷,“路径”类似于:/var/lib/docker/volumes/mysql/date
。当您在该文件夹中cd
时,您将看到与mysql容器中的数据相同的数据,路径为:/var/lib/mysql
。如果在容器中执行,您将看到相同的数据
它如何知道如何使用此路径?
好的,检查一下mysql的性能。这是:
VOLUME /var/lib/mysql
简而言之:mysql的所有数据都存储在容器内的/var/lib/mysql
中,并装载到主机上命名的docker卷mysql中,其路径类似于/var/lib/docker/volumes/mysql/data/
下一部分是将/default.conf
(在主机上,相对路径)装载到/etc/nginx/conf.d/default.conf
容器中的路径上
在这种情况下,Nginx和ghost不需要命名卷,因为它们不需要保留特定的数据。创建环境时,将使用Ghost(写博客)添加数据,但数据本身将存储在mysql数据库中。不在幽灵容器中
备注(如果您的第二个示例与mysql示例无关):ghost的默认映像与同一容器中的sqlite3 db一起工作(!每个容器都有microservice,因此这可以开发,而不是在生产中)。但是,如果要使用此设置,则需要为sqlite创建一个命名卷,该卷与ghost位于同一容器中。看一看鬼魂。
如果您想使用mysql,您可能需要将一个配置文件装载到您的ghost容器中,以告知容器:使用mysql,您将不需要ghost的命名docker卷,因为数据不会存储在ghost容器中,而是存储在mysql容器中。
要保持上一个示例的持久性而不使用mysql和命名卷,您必须为sqlite db添加一个卷,该卷位于此路径的ghost容器内:/var/lib/ghost/content
。再次检查以查看此路径
解释如何在docker compose中使用mysql设置ghost