docker命令分类
记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,根据docker官网案例,总的来说分为以下几种:
- Docker环境信息 — docker [info|version]
- 容器生命周期管理 — docker
- [create|exec|run|start|stop|restart|kill|rm|pause|unpause]
- 容器操作管理 — docker [ps|inspect|top|attach|wait|export|port|rename|stat]
- 容器rootfs命令 — docker [commit|cp|diff]
- 镜像仓库 — docker [login|pull|push|search]
- 本地镜像管理 — docker [build|images|rmi|tag|save|import|load]
- 容器资源管理 — docker [volume|network]
- 系统日志信息 — docker [events|history|logs]
Docker镜像(image)
基本流程
Docker Hub地址 (类似maven远程仓库地址)
https://hub.docker.com/
使用过程梳理
- 首先需要先从镜像仓库服务中拉取镜像。常见的镜像仓库服务是 Docker Hub,但是也存在其他镜像仓库服务。
- 拉取操作会将镜像下载到本地 Docker 主机,可以使用该镜像启动一个或者多个容器。
- 镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包。
- 容器的设计初衷就是快速和小巧,所以镜像通常都比较小。
- 镜像就像停止运行的容器(类)。实际上,可以停止某个容器的运行,并从中创建新的镜像。
- 镜像可以理解为一种构建时(build-time)结构,而容器可以理解为一种运行时(runtime)结构,如下图所示。
问题:相同软件镜像大小不一致原因?
原因是因为使用的操作系统内核不同,通常给予centOS的最大,alpine的最小。
小的镜像功能是否不完善?
小的镜像功能也是完善的,只不过从系统层面做了精简(系统层面少了很多软件,核心功能没有任何删减)。