postgresql – 使用docker卷保留数据库
我正在尝试将postgres数据保存在docker容器中,以便在docker-compose down和docker-compose up -d时,您不会丢失前一个会话中的数据.我无法做任何事情 – 拉下容器并再次备份会定期删除数据.
这是我目前的docker-compose.yml: version: '2' services: api: build: . ports: - '8245:8245' volumes: - .:/home/app/api - /home/app/api/node_modules - /home/app/api/public/src/bower_components links: - db db: build: ./database env_file: .env ports: - '8246:5432' volumes_from: - dbdata dbdata: image: "postgres:9.5.2" volumes: - /var/lib/postgresql/data 救命? 解决方法
根据
Dockment of Docker Compose,你写的东西如下:
volumes: - /var/lib/postgresql/data 它创建一个新的docker卷并将其映射到容器内的/ var / lib / postgresql / data. 为避免这种情况,您有两种选择: (A)将主机目录映射到容器中 您可以使用< HOST_PATH>:< CONTAINER_PATH>将主机目录映射到容器中. volumes: - /path/to/your/host/directory:/var/lib/postgresql/data postgresql的数据将保存到容器主机的/ path / to / your / host /目录中. (B)使用外部容器 docker-compose有external container的选项. version: '2' services: dbdata: image: postgres:9.5.2 volumes: - mypostgresdb:/var/lib/postgresql/data volumes: mypostgresdb: external: true 使用external:true,docker-compose不会创建mypostgredb卷,因此您必须使用以下命令自己创建它: docker volume create --name=mypostgredb postgresql的数据将保存到名为mypostgredb的docker卷中.有关详细信息,请阅读reference. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |