Docker-基本了解
- 一、基本概念
- 1、镜像
- 2、容器
- 二、执行流程
- 三、体系结构
一、基本概念
Docker是容器化平台,提供应用打包,部署与运行应用的容器化平台,应用程序通过docker engine(Docker 引擎获取可用资源),Docker引擎 和java虚拟机非常像。
1、镜像
镜像是只读文件,提供了运行程序完整的软硬件资源,是应用程序的集装箱。
ps: 相当于自己应用程序的安装文件
2、容器
容器是镜像的实例,为动态资源,由Docker负责创建,并统一管理,容器之间彼此隔离,单独管理,资源不冲突
ps : 运行镜像的环境:wins10可视为容器,2台电脑都安装此操作系统,其中1台有问题,不会影响另一台电脑的使用;他们都有自己独立运行的容器和资源。
二、执行流程
客户端向服务端(服务端包含三部分:docker daemon守护进程,管理的镜像以及对应的容器)发送命令,最后是注册中心,也称为远程仓库,中央仓库,存储大量镜像供下载
执行命令过程 eg:
docker pull 过程:比如从客户端发起pull redis镜像,请求到docker daemon,首先会在本地的images查看是否有redis镜像,如果没有,从远程仓库把官方提供的redis镜像拉取回来,下载到本地,由此docker pull 完成,本身负责从远程仓库下载镜像到docker本地镜像,docker的镜像相当于安装文件,如果想要运行,需要执行docker run(代表创建容器并启动服务)命令
docker run redis 过程:还是请求从客户端发起到docker daemon,先检索本地镜像库,存在则启动并维护容器,如果一个redis容器不够,可以在客户端执行docker run redis ,会再次创建redis容器,两个redis是独立的容器,独立的系统和独立的硬件资源,是互不干扰的,任何一个停掉,不会对其他有影响。如下图:
三、体系结构
Docker引擎包含三部分:
1、最内层:Docker daemon (docker服务器),也称为守护进程;
server部分为docker的核心处理部分,eg:获取镜像,创建容器,主要服务的是提供方
2、外侧有一个基于rest api的通信层, 相当于小的tomcat。基于web容器传输服务的,和客户端传输的也是标准的http请求与相应,
3、最外层的docker cli 作为docker的客户端。
docker pull 里,docker就是client提供的可执行文件
基于cs架构应用的好处:服务器和客户端可以不用安排到一个电脑上
比如:所以一个运维工程师可以通过网络管理很多台服务器,极大提高程序管理,运维的效率