如何将Docker-Compose Postgres的卷迁移到另一台主机?

时间:2019-01-21 16:54:33

标签: postgresql docker docker-compose

我有一个包含一些服务的Docker Compose文件。其中一个是数据库,我想备份这些卷并将所有数据迁移到另一台计算机上。 我的docker-compose.yml看起来像这样

version: '3'

services:
  service1:
  ...
  serviceN:
  db:
    image: postgres:11
    ports:
      - 5432:5432
    networks:
      - postgresnet
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
    postgresql:
    postgresql_data:

networks:
    postgresnet:
        driver: bridge

如何备份postgresql和postgresql_data卷的数据并将其迁移到另一台计算机上?

1 个答案:

答案 0 :(得分:0)

最简单的方法是在docker-compose个文件之间共享外部卷。

首先创建卷

docker volume create shared-data

下一步修改您yml

...
volumes:
    postgresql:
    postgresql_data:
      external:
        name: shared-data
...

现在,您的postgresql_data已映射到外部卷,并且您保存在其中的所有内容都可以从外部看到。只需在另一个docker-compose.yml中创建相同的配置即可享受。