提要
- 使用Docker带来什么好处
- Docker架构简介
- Docker核心概念
使用Docker带来什么好处
- Docker提供了一种利用镜像打包应用的方式,实现了类似Java应用程序一次编写随处运行的方式,这种方式无疑使开发、测试、线上环境的管理了更为高效,在应用程序环境部署和运维上节省大量的时间。
- Docker作为一种更轻量化的虚拟化方式,比起传统的虚拟机更具优势,主要体现在运行速度快(秒级),系统资源占用少,一台主机可以运行上千台的Docker容器,这个是传统虚拟机无法比拟的
- Dockerfile文件提供灵活的自动化创建容器机制,相比传统虚拟机的安装、部署方式,极大的提高了工作效率
Docker架构简介
Docker使用C/S结构,即客户端-服务器体系结构。Docker客户端与Docker服务器进行交互,Docker服务端负责构建、运行和分发Docker镜像。Docker客户端和服务端可以运行在一台机器上,也可以通过RESTful、stock或网络接口与远程Docker服务端进行通信。
体系结构如下图所示:
这张图展示了Docker客户端、服务端和Docker仓库(即Docker Hub 和 Docker Cloud),默认情况下Docker会在Docker中央仓库寻找镜像文件,这种利用仓库管理镜像的设计理念类似于Git,当然这个仓库是可以通过修改配置来指定的,甚至我们可以创建我们自己的私有仓库。
Docker核心概念
Docker服务器端包括了两个核心概念,即镜像(Images)和容器(Containers),Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的文件系统,镜像是创建Docker容器的基础,容器从镜像启动时,Docker会在镜像的最上层创建一个可写层,但镜像本身是只读的。
下图(从网上找到的),基本上把Docker的联合文件系统的全貌都画上啦,也从一个较为全面的角度阐述了Dockerfile、Docker镜像与Docker容器三者的关系
Docker提供了一套简单实用的命令来创建和更新镜像,我们也可以通过网络直接下载一个已经创建好了的应用镜像,并通过Docker RUN命令就可以直接使用。当镜像通过RUN命令运行成功后,这个运行的镜像就是一个Docker容器啦,容器可以理解为一个轻量级的沙箱,Docker利用容器来运行和隔离应用,容器是可以被启动、停止、删除的,这并不会影响Docker镜像。
如下图所示:
Docker客户端是Docker用户与Docker交互的主要方式。当您使用docker命令行运行命令时,Docker客户端将这些命令发送给服务器端,服务端将执行这些命令。docker命令使用docker API。Docker客户端可以与多个服务端进行通信。
下篇我们将从镜像分层技术的角度来介绍Docker容器是如何运行的。
欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号: