使用docker基本命令基于当前容器(centos 或者 ubuntu)创建一个带有新功能镜像,将该镜像发布到阿里云
重点理解
Docker镜像层都是只读的,容器层是可写的 当容器启动时,一个新的可写层被加载到镜像的顶部。 这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。(比如吃鸡蛋)
所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的。
Docker镜像commit操作案例
docker commit提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
案例演示ubuntu安装vim
从Hub上下载ubuntu镜像到本地并成功运行
原始的默认Ubuntu镜像是不带着vim命令的
外网连通的情况下,安装vim
docker容器内执行上述两条命令:
apt-get update
apt-get -y install vim
安装完成后,commit我们自己的新镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
启动我们的新镜像并和原来的对比
官网是默认下载的Ubuntu没有vim命令
我们自己commit构建的镜像,新增加了vim功能,可以成功使用。
本地镜像发布到阿里云
创建镜像仓库
管理界面脚本
设置访问凭证,输入三行命令
修改版本号
将阿里云上的镜像下载到本地
docker rmi -f + IMACE ID
将本地上传的镜像删除
从Registry中拉取镜像
(略)
查看拉取的镜像
启动容器:docker run -it +IMACE ID /bin/bash
ls 查看
cat.txt即可
总结
Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。
新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层