docker的容器加了里面新文件,commit之后新的镜像会有这个文件吗

docker的容器加了里面新文件,commit之后新的镜像会有这个文件吗

结论是可以的。

下面是实验过程:

我们把一个springboot做成了image。这个springboot主要有两个功能,接收参数并打印和新建文件。

@GetMapping("/params")
@ResponseBody
public String getParams(HttpServletRequest request) {
    String name = request.getParameter("name");
    Map<String, String[]> parameterMap = request.getParameterMap();
    for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
        System.out.println("key is "+entry.getKey()+" value is "+ Arrays.toString(entry.getValue()));
    }
    System.out.println(name);
    return "success";
}

@GetMapping("/writeTxt")
@ResponseBody
public String writeTxt() throws Exception{
    File file = new File("runoob.txt");
    BufferedWriter out = new BufferedWriter(new FileWriter(file));
    out.write("菜鸟教程");
    out.close();
    System.out.println("文件创建成功!address: "+file.getAbsolutePath());
    return "success!!!";
}

然后我们在本地调用/params看看能不能调通,能调通再去调用/writeTxt,得到打印结果。
在这里插入图片描述

然后我们打开另一个终端,交互方式进入容器,查看文件。
在这里插入图片描述

结果是有这个文件的。inspect一下看看挂载。
在这里插入图片描述

Mounts是没有元素的。下面我们把这个容器commit。
在这里插入图片描述

然后运行一下这个新容器,看他里面有没有 runboob.txt 。
执行:

docker run -it -P --name springboot-test-add-txt01 05120e06b644 /bin/bash

然后exec进入容器查看。
在这里插入图片描述

也会有这个文件。
下面我们把这个image push,然后删除本地镜像,再pull下来,看看会不会存在 runboob.txt。
首先得把镜像改名:
在这里插入图片描述

然后我们push:
在这里插入图片描述

这里push之后search好几次都查不到,但是前一天push的Tomcat能查到,可能是没更新?但是网页的dockerhub能查到,后面的pull也能pull下来。
然后我们删除镜像,只留剩下几个:
在这里插入图片描述

pull:
在这里插入图片描述

run新镜像:
在这里插入图片描述

这里只是测试一下接口是不是通的,没有新建文件,我们在另一个终端里面查看文件目录。
在这里插入图片描述

确实是有数据的。
说明文件添加之后是会一起commit的。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值