Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。
谢谢刘磊为我们准备了这一系列的内容,非常赞!
Docker是一个开源的引擎,可以轻松而又快速的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
1
Docker系统有两个程序:服务端和客户端
其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。
2
Docker通常适用如下场景:
· web应用的自动化打包和发布;
· 自动化测试和持续集成、发布;
· 在服务型环境中部署和调整数据库或其他的后台应用;
· 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
3
查看docker版本
4
Dockr架构
Docker 采用 Client/Server 架构模式。Docker Daemon是docker的核心守护进程,也就是Server端,Server端可以部署在远程,也可以部署在本地,客户端向服务器发送请求,服务端负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端可以通过 socket 或 REST API 与远程的服务器通信.
docker CLI 实现容器和镜像的管理,为用户提供统一的操作界面,这个 客户端提供一个只读的镜像,然后通过镜像可以创建一个或者多个容器(container),这些容器可以只是一个RFS(Root File System),也可以是一个包含了用户应用的RFS。容器在docker Client中只是一个进程,两个进程是互不可见的,从而实现容器之间的个隔离。
用户不能与server直接交互,但可以通过与容器这个桥梁来交互,由于是操作系统级别的虚拟技术,中间的损耗几乎可以不计。
5
docker容器和虚拟化实现原理
左图是虚拟机的工作原理图,着重体现在硬件层面进行虚拟化,实现对硬件资源进行抽象,对性能的损耗比较大,而且还会占用大量的内存资源
有图是Docker的工作原理图,属于OS级别的虚拟化,kernel通过创建多个镜像来隔离不同的app进程,由于kernel是是共享,本身linux image也不大,性能损耗几乎可以不计,而且内存占用也不大,大大节约了设备成本
领取专属 10元无门槛券
私享最新 技术干货