我正在努力从docker docs的以下示例中了解命名卷的工作方式:
version: "3"
services:
db:
image: db
volumes:
#1
- data-volume:/var/lib/db
backup:
image: backup-service
volumes:
#2
- data-volume:/var/lib/backup/data
volumes:
data-volume:
我的猜测是,命名卷(#1)第一次出现时定义包含在卷中的内容,而后续出现(#2)只是与被引用的任何容器共享卷的内容。
这个猜测正确吗?
最佳答案
如果尚未将data-volume:
列出在顶级volumes:
键下,则会在主机上创建一个命名卷。根据此source,这表现为以下方式
如果卷为空,并且两个容器在目标目录中都有数据,则要运行的第一个容器会将其数据安装到该卷中,而另一个容器将看到该数据(而不是它自己的数据)。我不知道哪个容器将首先运行(虽然我希望它从上到下执行),但是您可以使用depends_on强制执行订单,如here所示
- - - - - - - - - - 更新
关于docker - 命名卷在Docker中如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43248988/