我正在努力从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/

10-16 06:07