保存对容器的修改

王春生
660666
最后编辑:王春生 于 2014-02-15 09:31:52
简介:通过docker commit命令保存对容器的修改

保存对容器的修改

当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。

目标:

首先使用 docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/ping。

提示:

1. 运行docker commit,可以查看该命令的参数列表。

2. 你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)

3. 无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)

正确的命令:

$ docker commit 698 learn/ping

执行完docker commit命令之后,会返回新版本镜像的id号。

评论列表
宋先生 2020-01-10 11:54:10
没用啊,我在容器里面添加了一些文件,修改了文件
但是最后commit出来的还是原始镜像
没有姓名 2019-09-19 09:08:31
可以和原容器同名吗?
稀里糊涂干运维 2019-07-30 10:33:19
容器ID只取前三个字符嘛
整理知识点 2019-01-04 14:43:37
查看被修改的容器 :docker ps -l
提交指定容器保存为新的镜像: docker commit <container id> <new image name>
查看本地所有镜像:docker images
Exorcist 2017-07-25 19:44:29
应该加一句docker images查看有没有保存成功【手动滑稽】
111 2017-08-23 18:32:05
学习了
整理一下知识点 2019-01-04 14:42:14
查看被修改的容器:docker ps -l
提交指定容器保存为新的镜像: docker commit <container id> <new image name>
查看本地所有镜像:docker images
Guest 2017-07-20 17:05:31
没写清楚docker commit前需要停止容器,我安装完ping之后试了下ping www.baidu.com 然后 commit,结果就是查看镜像信息时里面COMMAND有“ping www.baidu.com”,造成每次以这个镜像启动一个容器就会去ping 百度了
daniel 2017-07-05 09:21:29
前辈,请教个问题,现在有个场景,比如我测试环境,有redis,postgresql,jdk等还有可运行的jar包一系列已经弄好的可以运行的一套。现在想在正式环境阿里云上,应用上docker的可快速复制化。现在我有两个思路,拿不准哪个正确。思路一:我在ubuntu的image基础上,run起来后,安装一系列(redis,postgresql,配jdk)然后,把jar放进去,正式环境要运行项目,就把docker容器开启,启动里面的jar包就行。思路二:分别在ubuntu的image上安装redis,push,然后再重新在一个image(ubuntu)上,再安装个postgresql,然后第三个image(ubuntu)上,放上工程jar包,部署jdk环境什么的。每次启动项目,思路一只用启动一个容器就行了。思路二,启动这三个容器。从docker的特点来说,是否应该选用思路二,因为这样如果我再有需要部署postgresql的需要,我可以直接把第二个image拿走运行就行了。而第一个没有发挥出docker的优势,对吗前辈。很是纠结。
niunan 2017-06-24 21:01:41
支持支持。。运行成功。。返回sha256的值。。。
city8866 2017-06-15 15:41:16
我返回的也是sha256:1077772665df3d61cd268d3ccc3bb0fd1ce7b5a6b43d52d3f30977aa20e1cdd0,不是id啊
Annie 2017-07-18 14:24:27
经过实验,这样显示就表明修改成功啦可以用命令docker images查看一下有没有新保存的image
lyon 2016-12-08 15:25:41
我怎么返回 sha256:4d2559c1f6666d97fa8691ec65dc36801c2e9d42aebe79f00aebb01562448416 ,感觉不对劲啊
1/2
发表评论
拾 乘 肆 =
评论通过审核后显示。