Docker 镜像超详细介绍
其实我们也会考虑 docker 为什么会才用这种分层的结果,它有什么好处呢?最大的一个好处就是共享资源
比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份 base 镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享
。
========================================================================
大家需要注意,docker 镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称为容器层
,容器层
之下的都叫镜像层
。
========================================================================
我们现在已经掌握了从docker hub
上获取相关镜像
,然后运行容器,并作出我们自己的处理,但有时候我们需要将我们自己的容器制作为对应的镜像,以便后面继续使用,这时我们就需要用到docker commit ...
命令了,这节我们就通过案例来介绍下 docker commit ...
命令的使用
docker commit -m="要提交的描述信息" -a="作者" 容器 ID 要创建的目标镜像名:[标签名]
我们通过tomcat
镜像来创建容器后操作处理,然后将容器制作为新的镜像然后我们通过新的镜像来制作容器来演示这个效果,有点绕,我们直接通过案例来说。
3.1 下载 tomcat 镜像
docker pull tomcat
创建tomcat
容器并运行
docker run -it -p 8888:8080 tomcat
参数说明
| 参数 | 说明 |
| --- | :-- |
| -p | 主机端口:docker 容器端口 |
| -P | 随机分配端口 |
| -i | 交互 |
| -t | 终端 |
访问服务
3.2 删除 doc
这时我们可以在 tomcat 中部署一个简单的服务,如下:
docker exec -it dae1df9c2b7c /bin/bash
删除 doc 服务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191225214716909.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0
cHM6Ly9kcGItYm9ib2thb3lhLXNtLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70)
再访问
3.3 创建信息的镜像
接下来我们就可以把正在运行的容器制作为一个新的镜像了,
docker commit -a="bobo" -m="delete tomcat docs file" dae1df9c2b7c bobo/tomcat:1.666
3.4 启动新的镜像
现在我们可以启动我们自己制作的镜像来访问了。
docker run -it -p 8899:8080 bobo/tomcat:1.666
评论