Docker卷关闭后,Docker卷不保留数据 [英] Docker volume doesn't keep data after turned docker-compose down

查看:235
本文介绍了Docker卷关闭后,Docker卷不保留数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用docker compose合并2张图像(tomcat与我的应用程序和数据库-postgres)。

I am using docker compose to combine 2 images (tomcat with my app and database - postgres).

我的撰写文件如下:

version: '3'

services:
  tomcat:
    build: ./tomcat-img
    ports:
      - "8080:8080"
    depends_on:
      - "db"

  db:
    build: ./db-img
    volumes:
       - db-data:/var/lib/postgres/data
    ports:
      - "5433:5432"

volumes:
  db-data:

,这是数据库映像的dockerfile:

and here is dockerfile for database image:

FROM postgres:9.5-alpine
ENV POSTGRES_DB mydb
ENV POSTGRES_USER xxxx
ENV POSTGRES_PASSWORD xxxx
COPY init-db.sql /docker-entrypoint-initdb.d/

EXPOSE 5432
CMD ["postgres"]

接下来,我用docker-compose cli docker-compose -f docker-compose.yml up开始我的容器

Next I started my containers with docker-compose cli docker-compose -f docker-compose.yml up

并运行psql工具

docker exec -it container_id psql -d xxxx -U xxxx

并插入新记录。之后,我检查是否确实存在:

and insert new record. After that I check if there really is:

select * from my_table;

之后,我尝试停止docker compose并使用以下命令删除容器:

After that I tried stopped docker compose and remove containers with:

docker-compose -f docker-compose.yml down

然后重新启动

docker-compose -f docker-compose.yml up

当我再次运行数据库容器的psql工具并在my_table中选择数据时,没有先前插入的记录...我要修理吗?我只需要一次用init-db.sql初始化数据库,然后使用该持久性存储。

when I run again psql tool of db container and select data in my_table, there is no previous inserted record ... Can you help me to fix it please? I need init my db with init-db.sql just once and next using that persist storage. Thanks for answers.

推荐答案

在带有数据量的Dockerized Postgresql中,我绑定到/ var / lib / postgresql而不是/ var / lib / postgres / data。尝试将撰写文件更改为

In my dockerized Postgresql with a data volume I am binding to /var/lib/postgresql and not to /var/lib/postgres/data. Try changing your compose file to

volumes:
       - db-data:/var/lib/postgresql

这篇关于Docker卷关闭后,Docker卷不保留数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆