镜像:
相当于一个root文件系统
提供运行时所需程序,库,资源,配置,环境变量,用户等。不包括动态数据,构建之后镜像内容不会被改变
特点:分层存储,遵循构建后镜像内容不会改变,即使删除上一层,也仅是标记
容器:
是镜像运行时的实体,可被创建,启动,定制,删除
实质是进程,属于自己独立的命名空间,容器内的进程运行在一个隔离的环境里
特点:分层存储,运行时以镜像为基础层,在其上创建当前容器存储层为容器存储层
容器消亡,容器存储层也消亡
ps:因此容器存储增要包车无状态化,文件写入操作勇当使用独立于容器的数据卷,或者保定宿主目录,跳过容器存储层直接对宿主发生读写
仓库:(Docker Registry官方)
用于镜像分发的服务,可包含多个仓库,仓库可以包含过个标签,标签对应镜像,查找镜像可以通过<仓库名>:<标签>指定镜像
访问这些镜像可能会慢,云服务商提供了Docker Hub的镜像服务(加速器:阿里, DaoCloud,灵雀云等)
ps:公有,私有Docker Registry
获取镜像:
docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
列出镜像:
docker images
镜像体积,在上传到Docker Hub上会压缩,docker展示的是下载到本地的展开大小。
玄虚镜像:(官方维护了镜像之后pull被转移到新下载的镜像上,旧镜像被消除)建议删除
//玄虚镜像列出
docker images -f dangling=true
//镜像删除
docker rmi $(docker images -q -f dangling=true)
ps 中间层镜像是顶层镜像所依赖的,不能随意删除