Docker教程小白实操入门(7)--基于Commit定制镜像

网友投稿 265 2022-10-22

Docker教程小白实操入门(7)--基于Commit定制镜像

一、需求

当某个镜像无法直接满足需求时,就可以在这些镜像的基础上修改,然后保存为新的镜像。

实例:在镜像​​busybox:latest​​​的基础上,新增了一个​​hello.txt​​​文件,形成一个镜像​​busybox:v1​​。

二、拉取最新​​镜像,创建容器,对容器进行修改​​

# 拉取busybox:latest镜像,并新建容器container1,最后在容器里新建了一个文件hello.txtdocker run --name container1 busybox touch hello.txt

三、将“对容器的修改”保存为镜像

docker commit [OPTIONS] CONTAINER [镜像名]

​​[OPTIONS]​​​:命令选项,其中​​--author​​​指定作者,​​--message​​​制定​​commit​​的信息;​​CONTAINER​​​:需要​​commit​​的容器;​​镜像名​​​:新镜像的名字,以​​<仓库名>:<标签>​​​的方式来指定。如果不显示设置,将默认为​​None:None​​。(这个代表没有指定镜像名)

本例为:

# 将container1容器保存为busybox:v1镜像docker commit container1 busybox:v1

查看效果

# docker exec进入了该容器内部,实际上就是进入容器另开一个终端。# 若报错,可将/bin/bash修改为/bin/shdocker run -it --name container5 busybox:v1 /bin/bash# 查看所有文件ls

四、使用commit定制镜像的缺陷

在实际的环境中,一般不会使用​​Commit​​去构建一个镜像:

1. 由于​​commit​​会将对容器做出所有的修改都保存为镜像,换句话说,就是在原有镜像的基础上,再叠加上容器的存储层(该存储层仅仅保存了容器所做的修改),将这些内容构成一个新的镜像。

​​2. docker commit​​意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。

更好的定制镜像的方法:​​Dockerfile​​!!

参考:​​https://educoder.net/shixuns/4uyn5ebp/challenges​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java十分钟精通包装类的使用与操作
下一篇:Docker教程小白实操入门(6)--如何删除一个容器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~