docker中postgressql容器commit为镜像时,无法把数据文件保存到镜像中
我在postgres-9.4.3中创建了一个用户和一个数据库并导入了数据,不大,几百M是有的,这两个镜像是不一样的,但是大小完全一样。
就是说原本的镜像大小是多少,你在容器中一顿操作之后保存的镜像大小还是多少,不会变,下一次用你自己保存的镜像启动容器的时候,会发现,之前创建的用户,数据库什么的全都不见了。
下面是解决方法
创建容器的时候挂载宿主机文件夹到容器中,把容器中的DB资料存储到宿主机中
docker run --name your-postgresql -v /usr/postgresqldata:/var/lib/postgresql/data/ -e POSTGRES_PASSWORD=postgres -d -p 10000:5432 9367
--name your-postgresql
表示:给这个容器起一个名字,不可重复
-v /usr/postgresqldata:/var/lib/postgresql/data
表示:把宿主机的/usr/postgresqldata挂载到容器/var/lib/postgresql/data的位置,这里最好是些绝对路径,宿主机的路径可以写相对路径,宿主机的文件夹中会有容器中的文件夹中的所有数据
-e POSTGRES_PASSWORD=postgres
表示:给容器中postgres设定环境变量,超级用户的密码
-d 后台运行
-p 10000:5432
表示:10000宿主机的端口对应容器5432端口(postgres默认端口)
本文介绍在Docker中使用PostgreSQL时如何通过挂载宿主机文件夹实现数据持久化,避免容器重启后数据丢失的问题。通过具体示例说明如何设置环境变量和端口映射。

6407

被折叠的 条评论
为什么被折叠?



