Docker的基本组成:镜像、容器、仓库。
什么是镜像?
(1)镜像:
· 从面向角度类比:镜像=java的“类”。
· 镜像就是一个只读的模板(不能“直接”运行,只能“复制”成可运行容器)。
· 一个镜像可以创造出多个容器。
什么是容器?
(2)容器:
· 从面向角度类比:容器=java里new出来的对象。
· 容器是镜像创建出来的能独立运行的环境(比如容器里你装了Python3.9但宿主机装了Python3.7,不影响容器跑Python程序)。它可以启动,停止,删除,且相互隔离(比如你开了2个容器,其中一个崩了也不影响另一个)。
总结:
“镜像”打包好的“系统模板+应用”,是容器“原材料,能重复生成多个容器。
“容器”就是用镜像“装”起来,能独立跑应用的隔离环境。
什么是仓库?
(3)仓库:
· 仓库:集中存放镜像文件的地方。
· 类比:GitHub仓库(用于存放代码项目)。
· Docker官方的公共仓库叫Docker Hub
仓库分类:
· 公开仓库:如刚刚说的Docker Hub(http://hub.docker.com)
· 私有仓库:只有自己和团队才能访问存放自己的镜像。
Docker系统架构

Docker的工作原理:
Client发送命令[run/build/pull]给Dockerdeamon(守护进程),然后它检擦是否本地存在images。若存在,直接基于该镜像images创建并运行容器Containers;若不存在,需要远程仓库Registry拉去镜像,再创建运行容器。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程