docker 镜像
镜像
- 概念:是一种轻量级,可独立执行的软件包,包括了运行某个软件需要的所以内容;我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括了代码,运行时库和配置文件等)这个打包好的运行环境就是image镜像文件。
只有通过镜像文件才能生成Docker容器实例(类似Java中new出来的一个对象)。 - 镜像是分层的
- 联合文件系统(UnionFS):是一种分层,轻量级并且高性能的文件系统,它支持对文件的修改来作为一次提交来一层层叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下。UnionFS是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像可以制作各种镜像。
镜像版本更替
- docker commit提交容器副本使之成为一个新的镜像
命令格式:docker commit -m “提交的描述信息” -a=“作者” 容器ID 待创建的镜像名:[版本标签]
demo:在原始的ubuntu容器实例的基础上添加vim功能,然后制作为一个新的image
docker commit -m=“add vim cmd” -a=“hanlin” 148fcec2a5d9 hanlin/ubuntu:1.1
镜像push到远程仓库
镜像push到私有库
- 下载镜像docker registry
命令:docker pull registry - 运行私有库registry,相当于本地有个私有的docker hub
命令:docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry - 案例演示创建一个新的镜像,ubuntu安装ifconfig命令
- curl验证私服库上有什么镜像
- 命令:curl -XGET http://192.168.10.102:5000/v2/_catalog
- 将新镜像***修改符合私服规范的tag
- 命令:docker tag myubuntu:1.2 192.168.10.102:5000/myubuntu:1.2
- 修改配置文件使之支持http
- 命令:修改/etc/docker/daemon.json,增加私服库地址,如下:
{
“registry-mirrors”: [“https://x9vynial.mirror.aliyuncs.com”],
“insecure-registries”:[“192.168.10.102:5000”]
}
- 命令:修改/etc/docker/daemon.json,增加私服库地址,如下:
- push推送到私服库
- 命令:docker push 192.168.10.102:5000/myubuntu:1.2
- curl验证私服库上有什么镜像1
- 命令: curl -XGET http://192.168.10.102:5000/v2/_catalog
- 从私服库pull镜像到本地
- 命令:docker pull 192.168.10.102:5000/myubuntu:1.2