前言
本系列文章为《Docker进阶与实战》读书笔记,记录了一些书摘、一些我个人的想法以及在实践的过程中踩过的坑。
Docker简介
Docker是一个开源的容器引擎,可以方便的对容器进行管理。
它可以统一开发、测试、部署的环境和流程。
Github地址:github.com/docker/docker
Docker结构图:
Docker是基于容器技术的轻量级虚拟化,其虚拟化技术是基于内核的CGroup和Namespace技术,处理逻辑与内核深度融合,性能与物理机非常相近。
Docker的组件
- Docker 客户端
- Docker daemon
- Docker 容器
- Docker 镜像
- Registry
Docker 客户端
Docker采用C/S架构。对于Linux而言。其在发布时,客户端和服务端统一在同一个二进制文件中。而对于Mac而言,Docker只提供客户端。
Docker 客户端通过Docker command发起请求,在其他应用程序的代码中也可以采用Docker 提供的RESTful API来发起请求。
Docker daemon
Docker daemon 也可以被理解为Docker Server。其实现的功能就是接收客户端发来的请求,并实现请求所要求的功能,同时针对请求返回相应的结果。
Docker 容器
容器是对镜像的完美诠释,容器以镜像为基础,又为镜像提供了一个标准的和隔离的执行环境。
Docker的容器可以安装任意的软件和库文件,做任意的运行环境配置。开发及运维人员在转移和部署应用的时候,不用关心容器里装了什么软件,也不用了解它们是如何配置的。管理容器的Docker引擎同样不关心容器里的内容,只要让这个容器运行起来就OK了。
Docker的诞生被称为“软件界的创新和革命”,是因为它会改变软件界的开发、部署形态,降低成本,提高效率。
Docker 镜像
Docker镜像是运行环境的静态体现,是一个还没有运行起来的“运行环境”。Docker 镜像相对于传统的虚拟化技术的镜像更轻量,它是一个可定制的rootfs。Docker镜像的另一个创新:它是层级的、可复用的,可以极大减少磁盘和内存的开销。
Docker 镜像通常通过Dockerfile来创建。
还可以通过使用docker commit
将修改后的内容生成新的镜像。
Registry(仓库)
查了一些资料,并没有合适的翻译,按照它实现的功能我觉得叫仓库也是ok 的。
Registry 是镜像的仓库,部署在互联网服务端或者云端。
仓库在镜像的传输过程中起着重要的作用。举个栗子,我们在公司将某软件的运行环境制作成镜像,上传到云端的Registry中,可以很方便的在家里的笔记本上或者在客户的生产环境中直接从Registry上pull下来这个镜像并运行咯。
Docker公司提供了官方的Registry叫Docker Hub。提供了大量的官方or第三方镜像供大家选择。
当然也可以自己部署一个Registry实现一个私人仓库。
小结
在下篇文章中将会介绍Docker的安装及一些基本的使用说明。