gpt4 book ai didi

docker - 了解 docker compose 中的音量

转载 作者:行者123 更新时间:2023-12-02 20:00:02 25 4
gpt4 key购买 nike

以下是 https://docker-curriculum.com/ 中给出的示例

version: "3"
services:
es:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
container_name: es
environment:
- discovery.type=single-node
ports:
- 9200:9200
volumes:
- esdata1:/usr/share/elasticsearch/data
web:
image: prakhar1989/foodtrucks-web
command: python app.py
depends_on:
- es
ports:
- 5000:5000
volumes:
- ./flask-app:/opt/flask-app
volumes:
esdata1:
driver: local

它说 The volumes parameter specifies a mount point in our web container where the code will reside关于 /opt/flask-app
我认为这意味着, /opt/flask-app是一个挂载点,它指向主机 ./flask-app
但是它没有说任何关于 esdata1 的内容。我不能应用与 /opt/flask-app 相同的解释因为没有 esdata1主机中的目录/文件。
esdata1 发生了什么?
我的猜测是这意味着创建一个卷(我能想到的最接近的东西是磁盘分区)并将其命名为 esdata1并将其安装在 /usr/share/elasticsearch/data ,我对这个猜测是否正确?

最佳答案

这些有点不同:volumesbind mounts .绑定(bind)挂载让您在 上指定文件夹主持人 机器,将用作存储。卷(至少为 local 驱动程序)在主机上也有文件夹,但它们的位置由 Docker 管理,有时很难找到。

当您在 docker-compose.yml 中指定音量时, 如果您的路径以 / 开头或 .它变成了 bind mount ,如 web服务。否则,如果是单个动词,则为 volume , 喜欢 es服务。

您可以通过运行 docker volume ls 检查主机上的所有卷。 .

What is happening for the esdata1 ? My guess is that it means creating a volume (The closest thing I can think of is a disk partition) and name it esdata1 and mount it on /usr/share/elasticsearch/data, am I correct on this guess?



这都是正确的。

我不假装设置规则,但总的来说, volumes更适合在多个容器之间共享公共(public)数据,如 docker-compose , 而 bind mounts套件更适合从主机共享数据到容器,例如服务的一些初始配置。

关于docker - 了解 docker compose 中的音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54518893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com