我在项目中使用了postgres docker镜像。对于初始化,我使用以下命令来创建和初始化数据库(表,视图,数据等)
COPY sql_dump.sql /docker-entrypoint-initdb.d/
在停止和删除容器之后是否可以保留这些数据?例如,当我运行postgres的图像时,它将在每次容器启动时使用这些数据创建数据库,而不会加载脚本。只需加载首次运行时创建的数据即可。
我做了一些研究,发现了VOLUME命令,但是我不知道如何使用它来实现我的目的,我是Docker的新手。谢谢你的帮助。我正在使用Docker For Win v18。
答案 0 :(得分:1)
您可以使用docker命名卷,更多信息请参见here。
这将创建一个名为postgres-data的命名卷
docker volume create postgres-data
说这是您创建容器的命令。
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
将其更改为此。
docker run --name some-postgres -v postgres-data:/var/lib/postgresql -e POSTGRES_PASSWORD=mysecretpassword -d postgres
这应该将postgres-data卷挂载在/ var / lib / postgresql下。他们可以初始化您的数据库吗?当您停止并启动容器时,它将包含持久数据。
-HTH