Docker Postgres镜像 数据无法存档 解决

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默认端口)

原文地址:https://www.cnblogs.com/hzcya1995/p/13317383.html