您的位置:首页 > 运维架构 > Docker

Docker 入门 Docker简介(1)

2019-03-19 17:14 190 查看

一、什么是Docker?

       docker 中文的意思是码头工人,物件。概括的说,docker 是把应用程序自动部署到容器的开源引擎,docker提供一个称之为容器的松散隔离环境。 一般情况下一个容器运行一个特定的应用程序,从而形成分布式的应用模型。这种应用模型使得之后的功能扩展,代码调试变得更加简单,快捷。

      docker 使用了高内聚,低耦合,单一任务的编程思想。

 

二、容器和虚拟机的区别

       虚拟机是通过中间层运行在物理硬件之上的,和原操作系统完全隔离,需要安装完整的操作系统。 虚拟机的特点是:占用的资源多,启动慢,和宿主机几乎完全隔离,不依赖宿主机的操作系统。

       容器是操作系统级别的虚拟化技术,与原操作系统不完全隔离。一般情况下,用docker部署项目的时候,docker 会同时管理多个容器。 容器的特点是:占用的资源少,启动快,和宿主机相对隔离,依赖于linux内核(windows下docker需要安装虚拟机)。

 

三、Docker 的作用

       1. docker主要是创建具有一定隔离的测试环境和线上运行环境, 保证开发人员和运维人员使用的是一致的环境,一致的环境可以使代码的稳定性加强,减少项目部署时潜在的bug。

        2. 简化开发的生命周期,配合CI工具(例如Jenkins)可以实现代码的快速部署和分发、自动化程度更高。

        3. 利用docker部署项目,可以降低配置测试环境,生产环境的复杂度和成本。

 

四、Docker的整体结构

1. docker 引擎

    docker 引擎是一个C/S架构的应用程序, 由三个组件构成:

          * 服务器:是一种运行在后台的进程(docker守护进程)

          * REST API :与服务器通信并指定服务器操作的一套接口

          * 客户端:命令行界面的客户端接口(docker命令)

          

     服务器的作用是创建和管理docker对象, 如:镜像,容器,网络和数据卷等等。

     客户端的作用是使用Docker REST API 来控制Docker守护进程或者和Docker守护进程交互。

2. docker 结构

      docker 的结构图如下:

       需要注意的是:Docker 客户端和守护进程可以运行在同一个系统上,也可以将Docker客户端连接到远程的Docker守 护进程。Docker客户端和守护进程使用REST API, 通过UNIX套接字或网络接口进行通信。

 

五、Docker的底层技术了解:

      1. dokcer 是使用的Go语言实现的。

      2. docker 是利用linux内核的几个特性来实现其功能。(也就是说docker必须运行在linux中,Win和Mac需要借助虚拟化技术)

              (1) Namespace: docker引擎使用pid命名空间,net命名空间, ipc命名空间(进程间通信),mnt命名空间, uts命名空间(隔离 内核和版本标识符) 来提供隔离的工作空间。

             (2) Control Groups:控制组限制应用程序的资源,例如,控制组可以限制特定容器所能使用的内存大小。

             (3) Union File Systems:通过创建layer 管理容器和镜像。

       3.容器格式: Docker 引擎将Namespace,Control Groups和UnionFS组合成一个称为容器格式的包装器。默认容器格式是libcontainer。将来,Docker可以通过与BSD Jails或Solaris Zones等技术集成来支持其他容器格式。

      

参考内容: https://docs.docker.com/engine/docker-overview/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: