学习优先级:★★★★☆

易用性:★★★☆☆

volumes_from 指令允许一个容器使用另一个容器的卷。这在需要在多个容器之间同步数据或配置时非常有用,而无需创建冗余卷。

以下是一个示例,展示了如何将一个数据库容器使用的卷共享给一个备份容器。

示例代码

version: '3'

services:
  db:
    image: postgres
    volumes:
      - db_data:/var/lib/postgresql/data

  backup:
    image: alpine
    volumes_from:
      - db
    command: tar czf /backup/db_backup.tar.gz /var/lib/postgresql/data

volumes:
  db_data:

执行结果

运行此 Compose 文件时,备份容器会创建数据库数据的备份,这些数据存储在 db_data 卷中。备份容器可以直接访问数据库容器的数据。

在终端中运行 docker-compose up 后,输出结果如下:

backup_1  | Daten wurden erfolgreich nach /backup/db_backup.tar.gz gesichert.

volumes_from 允许一个容器访问另一个容器的卷。这在多个容器需要访问相同数据时非常有用,例如在应用和备份服务之间。需要注意的是,volumes_from 在较新的 Docker Compose 版本中较少使用,因为直接在 Compose 文件中使用显式的卷挂载通常更受青睐。

补充说明

Docker 中的卷允许将数据存储在容器之外,从而在容器重启时保留数据。除了使用 volumes_from,还可以直接在 Compose 文件中使用显式的卷挂载,这种方式更灵活且易于阅读。