Skip to content

镜像的管理与使用


关于镜像,我们其实可以理解为其他语言的包。比如前端的npm包、java的jre包、python的模块等等类似的概念,而它们也会有一个manager,也就是包管理工具,比如前端的npm、yarn,pnpm;Python的pip,conda等都是对包管理的程序;也可以类比为数据库(DB)和数据库管理软件(DBMS)的关系。它们往往都有一个中心仓库来存放资源,并通过包管理工具进行管理。

同样地,Docker镜像也拥有一个中心仓库Docker Hub,更准确的称呼是镜像仓库;包管理工具自然不必多说,就是Docker。

常用命令(镜像)

镜像命令可以很好地和git相对应。

拉取镜像
	docker pull
查看本地镜像
	docker images
具体查看镜像信息
	docker inspect <image-name / image-id>
删除镜像
	docker rmi <image-name / image-id>

镜像层

在pull和delete镜像时,弹出的多条结构化信息,每一个都对应着一层镜像。而由于镜像拥有唯一ID,我们可以粗略地理解为删除时删除的是当前镜像对其镜像层的引用,只有当镜像层引用为0时才会真正删除。这与V8的GC机制相同,在很多编程的其它领域也有类似根据引用数来判断和操作的体现。

中心仓库

Docker Hub官网:https://www.docker.com/products/docker-hub/

Docker Hub,其实理解为Github的Docker版本更为适宜。其相关概念基本上是一致的,比如start数等。Docker Hub提供了完善的Web端网站服务,可以通过直观的UI进行各种操作。

除此之外,Docker还提供了CLI的镜像搜素指令

docker search <image-name / image-id>

值得一提的是,对于镜像ID遵循的原则是只要能指定其唯一即可。也就是说如果本地只有一个镜像,那么你直接输入镜像ID的第一位即可定位这个镜像,以此类推。