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

docker学习笔记(三)

2017-10-28 11:41 323 查看
Docker 底层实现

一.基本架构: Docker 采用C/S架构,包括客户端和服务端

二.命名空间: 每个容器都有自己的命名空间

 1.pid名字空间: 不同用户的进程通过Pid名字空间来隔开

 2.net名字空间: 网络隔离是通过net名字空间实现

 3.ipc名字空间: 在相同pid名字空间中的进程间的交互,因此需要在IPC资源申请时加入名字空间信息,每个IPC资源只有一个唯一的32位id

 4.mnt名字空间: 将一个进程放到一个特定的目录执行

 5.vts名字空间: 该名字空间允许每个容器拥有独立的hostname和domain name ,使其在网络上可以被视作一个独立的节点而非主机上的进程

 6.user名字空间: 每个容器可以有不同的用户和组id

三.控制组:是Linux内核的一个特性,主要用来对共享资源进行隔离,限制,审计等

四.联合文件系统: 是一种分层,轻量级并且高性能的文件系统。是docker镜像的基础,进行可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像

今天还看了很多关于docker案例的教程

目前自己对docker的理解是:

 docker有点类似虚拟环境下的系统,比如昨天做的Nginx的配置,相比之前学习ansible时候的配置,发现docker更加神奇,不需要配置更多的文件,只需要写在Dockerfile文件中,然后docker build 生成镜像,在一个虚拟系统中可以创建产生很多个docker,不同需求功能的docker之间不会相互影响。而且docker还解决了对于不同系统环境下想要运行某个开发系统会出现的由于环境改变而引起的问题,因为在很多时候想要运行某个系统文件,搭建环境也是一件比较麻烦的事情,用docker的话,方便的同时还会减少内存空间的占用,所以说它的“粒度”比较小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker