docker commit 打包的pgsql镜像为什么没有数据

结论:当使用 docker commit 命令来创建一个新的 Docker 镜像时,这个命令实际上是对当前运行中的容器进行了一个快照,但是创建的镜像不包含挂载数据卷中的数据。

测试详细步骤,如下:

1、下载指定版本postgesql

 docker pull postgres:12

2、查看下载好的镜像文件:docker images

3、运行镜像

把pgsql数据卷挂载在:/test/docker/postgresql/data 

docker run --name pgsql --restart=always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=db_test -p 5432:5432 -v /test/docker/postgresql/data:/var/lib/postgresql/data -d postgres:12

4:登录数据库,创建测试表:test_table,并插入一条测试数据

5:在挂载的数据卷中:/test/docker/postgresql/data,放一个测试文件

6、执行 docker commit 打包镜像:docker commit pgsql pgsql2

7、运行刚刚打包的新镜像:pgsql2,并映射到宿主机25432端口,设置数据卷位置:/test2/docker/postgresql/data

docker run --name pgsql2 --restart=always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres  -p 25432:5432 -v /test2/docker/postgresql/data:/var/lib/postgresql/data -d pgsql2

8、进入到pgsql2数据库镜像创建的数据库时,没有我们前面创建的test_table表,并且挂载的路径:/test2/docker/postgresql/data 中也没有测试文件。

所以,使用 docker commit命令不打包挂载数据卷中的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值