介绍
1.Docker是一个虚拟化平台,诞生于2013年初,基于Google公司的Go语言进行实现,可以通过虚拟化的方式
2.现阶段的所有的软件安装都是基于Docker进行实现,安装mysql过程不简单,要配置安装源,安装依赖包
Docker 核心对象
镜像(Image)
Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),镜像可以打包应用的运行环境以及应用程序,可以通过 Docker 启动这个镜像,进而将应用程序在一个容器中启动运行起来。在 Docker 镜像中,操作系统是高度精简的,镜像中的操作系统还不包含内核,容器都是共享所在的宿主机的内核。所以有时会说容器仅包含必要的操作系统(通常只有操作系统文件和文件系统对象),容器中查看到的 Linux 内核版本与宿主机一致。假如现在理解镜像有些抽象,可以暂时先将其理解为一个安装程序。
容器(Container)
Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。我们常常说使用镜像打包应用程序,使用 Docker 发布、部署应用程序,那么当你的应用成功在 Docker 上运行时,称这个应用就是容器化应用( containerized applications)。
Docker 应用架构分析
架构图
Docker 是一种Client/Server架构的应用程序,如图所示(参考docker 官网https://docs.docker.com/get-started/overview/)
Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
Docker Daemon是docker的服务线程,处理Docker客户端命令。
Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。
Docker运行机制
docker pull 执行过程:
1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
docker run 执行过程:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
- 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个 ip 地址给容器
- 执行用户指定的应用程序