尝试在docker中备份文件时如何正确指定命名卷

时间:2016-08-24 11:02:24

标签: postgresql docker docker-compose

我有以下docker-compose文件

version: '2'

services:
  postgres:
    container_name: postgres
    image: postgres:${POSTGRES_VERSION}
    volumes:
      - postgresdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=42EXP

  node:
    container_name: node
    build: .
    links:
      - postgres:postgres
    ports:
      - "8000:8000"
    depends_on:
      - postgres
    command: npm start

volumes:
  postgresdata:

正在运行docker volume ls我有

local               42exp_postgresdata

尝试通过以下方式执行备份时:

docker run --rm --volume=42exp_postgresdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/postgresql/data

我收到以下错误:

docker: Error response from daemon: Invalid volume spec "42exp_postgresdata": Invalid volume destination path: '42exp_postgresdata' mount path must be absolute..

我不确定我哪里出错了,因为它几乎是文档中指定的确切代码。如何正确指定要备份的命名卷?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用--volumes-from mycompose_postgres_1(或者调用生成的docker镜像)?请参阅:https://docs.docker.com/engine/tutorials/dockervolumes/