架构
Docker 主机(Host):笔记本、服务器、云服务器,用于执行 Docker 守护进程和容器。
Docker Machine:是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
Docker 客户端和服务器端
Docker 是客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker Server:常驻后台的系统进程,称之为 docker daemon。所谓“运行 docker”,指的就是运行 Docker daemon,其作用主要有以下两点:
- 接受并处理 Docker Client 发送的请求
- 管理所有的 Docker containers 和 Docker images
Docker 客户端(Client):用户通过 client 操作 server(daemon),实现对 Docker image 和 container 的管理
Docker client 与 docker daemon 建立请求的方式
有三种,分别是:
- tcp://host:port
- unix://path/to/socket
- fd://socketfd
执行下面命令:
ps -ef|grep docker
镜像(Images)、容器(Container)、仓库(Registry)的关系
Docker 镜像(Images):是用于创建 Docker 容器的模板。
Docker 容器(Container) :通过 Docker 镜像来创建,是独立运行的一个或一组应用。
默认只访问本地docker serverDocker 仓库(Registry),保存镜像的仓库,相当于github
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
执行过程
docker run hello-world
- docker client向本地docker server发指令,
- docker server查找本地是否有该镜像:
- 有就运行;
- 如果没有,去docker hub下载镜像
- docker hub有该镜像,下载到本地,docker server以该镜像为模板创建容器并运行
- docker hub没有该镜像,返回错误信息
感谢:
https://www.jianshu.com/p/ee959322a8f6
https://segmentfault.com/a/1190000006448568

