postgreSQL的官方docker映像如何以及在何处保存其数据库
我是docker的新手,有点困惑,因为我希望我的PostgreSQL docker容器不能持久化任何数据,但当我停止后将其旋转回来时,我的数据库数据似乎仍然存在 我一直在查找现有答案,并在stack exchange上找到以下答案:postgreSQL的官方docker映像如何以及在何处保存其数据库,postgresql,docker,persistence,docker-compose,Postgresql,Docker,Persistence,Docker Compose,我是docker的新手,有点困惑,因为我希望我的PostgreSQL docker容器不能持久化任何数据,但当我停止后将其旋转回来时,我的数据库数据似乎仍然存在 我一直在查找现有答案,并在stack exchange上找到以下答案: (对不起,我没有代表发布超过2个链接) Docker postgres持久性和容器寿命 如何在Docker Postgres脚本中创建用户/数据库 如何在docker中处理持久性存储(如数据库) 但我还是不明白。也许有人能给我解释清楚一点!这就是我所做的: (我
(对不起,我没有代表发布超过2个链接)
- Docker postgres持久性和容器寿命
- 如何在Docker Postgres脚本中创建用户/数据库
- 如何在docker中处理持久性存储(如数据库)
我遵循了Docker文档网站上的教程:
这一切都很完美,所以我继续学习Django应用程序教程:
同样,一切都很好,所以我在我的新网站上玩了一会儿,导致数据库中填充了一些数据 我可以看到我的示例Django应用程序的web应用程序代码是如何运行的,因为它安装在我主机上的一个卷上,并且还复制到我再次运行docker compose时生成的映像中,但我希望在停止所有容器后,postgres数据库容器中存储的任何数据都会丢失。但是,在停止所有正在运行的容器后,我返回docker项目目录并运行:
docker-compose up
所有这些都直接备份了,我上一次运行的图像数据仍然存在于数据库中,并在Django web应用程序中使用
发生了什么事
- 主机上的某个地方
- 我怎样才能知道那在哪里
- 构建文件的哪一部分实现了这一点
- 或者这是官方博士后形象的默认行为
下面是我按照上面提到的docker quickstart教程的指导使用的构建文件 Dockerfile
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
Django
psycopg2
docker-compose.yml
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
它存储在docker容器中。当您停止容器时,容器仍然保留其所有数据。只有在删除数据时,您才会丢失数据:
docker rm <container>
docker-rm