Dockerfile-Namespace
Docker核心-Namespaces(命名空间)
1)概念:
命令空间是Linux内核的一个强大的特性。每个容器都有自己单独的命令空间,运行在其中的应用都是独立在操作系用中运行一样。命名空间保证了容器之间彼此互不影响。
命名空间 (namespaces) 是 Linux 为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。在日常使用 Linux 或者 macOS 时,我们并没有运行多个完全分离的服务器的需要,但是如果我们在服务器上启动了多个服务,这些服务其实会相互影响的,每一个服务都能看到其他服务的进程,也可以访问宿主机器上的任意文件,这是很多时候我们都不愿意看到的,我们更希望运行在同一台机器上的不同服务能做到完全隔离,就像运行在多台不同的机器上一样。当我们其中一个服务被黑客入侵了,那么其他服务也会遭受这个黑客攻击。
linux默认的时候是不能同时启动两个80端口的apache和nginx,但是我们利用命令空间技术就可以实现,每个进程之间互不关联。
2)Linux上有哪些命名空间
1,PID Namespaces(PID 命名空间,CLONE_NEWPID)
不同用户登录的进程就是通过PID Namespaces来隔开的,且每个Namespaces中可以有 相同的PID。所有的LXC进程在Docker中的父进程为Docker进程,每个 LXC 进程具有不同的Namespaces。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器;2,Net Namespaces(网络命名空间,CLONE_NEWNET)
有了Pid Namespaces,每个Namespaces中的PID能够相互隔离,但是network port还是共享host的端口。网络隔离是通过Net Namespaces空间实现的,每个Net Namespaces 有独立的网络设备,IP地址,路由表,/proc/net目录。这样每个container的网络就能个离开。Docker默认采用veth的方式,将容器中的虚拟网卡同host上的一个Docker网桥Docker0连接在一起;3,IPC Namespaces(,CLONE_NEWPID)
continer中进程交互采用了Linux常见的进程交互方法(interprocess communication 进程间通信– IPC),包括信号量、消息队列和共享内存等;然后同VM不同的是:continer的进程(procession)间交互实际上还是host上具有相同PID名字空间中的进程间交互,因此需要在IPC资源申请时加入Namespaces信息,每个IPC资源有一个唯一的32位ID4, Mount Namespaces(挂载命令空间,CLONE_NEWNS)
类似于chroot,将一个进程放到一个特点的目录执行。mount Namespaces允许不同Namespaces的进程看到的文件结构不同,这样每个Namespaces中的进程所看到的文件目录就被隔离开了。和chroot不同的是,每个Namespaces的container在/proc/mounts的信息只包含所在的Namespaces的mount point(挂载点);5,UTS Namespaces
UTS(UNIX Time-sahring system),允许每个continer都拥有独立的hostname和domain name,使其在网络上可以被视作一个独立的节点而非主机上的一个进程。6,User Namespacer(用户命令空间)
每个continer可以有不同的用户和组ID,可就时可以说每个continer可以用自己内部的用户,不用依赖于宿主机
3,作用
用于容器之间的资源进程隔离的
Dockerfile-Namespace的更多相关文章
- kubernetes 实战6_命令_Share Process Namespace between Containers in a Pod&Translate a Docker Compose File to Kubernetes Resources
Share Process Namespace between Containers in a Pod how to configure process namespace sharing for a ...
- docker Dockerfile 创建镜像
Docker 组件 1. docker client : docker的客户端 2. docker server : docker daemon的主要组成部分,接受用户通过docker client发 ...
- Docker技术三大要点:cgroup, namespace和unionFS的理解
www.docker.com的网页有这样一张有意思的动画: 从这张gif图片,我们不难看出Docker网站想传达这样一条信息, 使用Docker加速了build,ship和run的过程. Docker ...
- [置顶]
Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
csphere/php-fpm:5.4 # cd docker-training/php-fpm/ # ls Dockerfile nginx_nginx.conf supervisor_nginx. ...
- [置顶]
Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
一.Docker是什么? 首先Docker是软件工业上的集装箱技术 回顾,在没有集装箱出现以前,传统运输行业中,会存在这些问题: 在运输过程中,货物损坏 装卸.运输货物,效率低下 运输手续繁多及运输环 ...
- Dokcer基础使用总结(Dockerfile、Compose、Swarm)
Dokcer基础 查看Linux版本 uname -r 查看Linux详尽信息 cat /etc/*elease CentOS Linux release (Core) NAME="Cent ...
- Dockerfile解析(八)
一.Dockerfile是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本. 1. 构建的步骤 运行容器:docker run 构建新的镜像:docker ...
- docker理论 Cgroup namespace 各种隔离
耦合 是指两个或两个以上的体系或者两种运动形式间通过相互作用而批次影响以至联合起来的现象. Nginx与apache 在同一台服务器运行都占用80端口,起冲突这是我们修改其中一个端口为8080 半解耦 ...
- 6、DockerFile解析:三步走、保留字指令
1.dockerfiel是什么 1.是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本. 2.构建三步骤 编写Dockerfile文件 docker bu ...
- 使用使用dockerfile构建webapi镜像然后使用link和bridge两种方式进行桥接
首先新增一个webapi的项目 项目核心代码 UserContext using Microsoft.EntityFrameworkCore; using System; using System.C ...
随机推荐
- Maven+JSP+SSM+Mysql+C3P0实现的学生管理系统
项目简介 项目来源于:https://gitee.com/wu_yun_long/student_management_system 本系统是基于Maven+JSP+SSM+Mysql+C3P0实现的 ...
- 重大更新!Druid 0.18.0 发布—Join登场,支持Java11
Apache Druid本质就是一个分布式支持实时数据分析的数据存储系统. 能够快速的实现查询与数据分析,高可用,高扩展能力. 距离上一次更新刚过了二十多天,距离0.17版本刚过了三个多月,Druid ...
- thinkphp5 --接口实例
这是我自己构思的案例,写的不好请多多指教. 后台接口的代码: public function index() { $res = array(); header("Access-Control ...
- Linux查看端口或pid使用路径
1. lsof -i:10010 查看10010端口的占用情况 命令返回结果: 2. netstat -lpn | grep 80 查看80端口服务端socket占用状况 3. ll /proc/26 ...
- BIOS和CMOS区别
在网上看到一篇关于CMOS的文章,分享一下. 原文地址:http://jingyan.baidu.com/article/c843ea0b51155d77921e4a7a.html BIOS是什么? ...
- 理解分布式一致性:拜占庭容错与PBFT
理解分布式一致性:拜占庭容错与PBFT 拜占庭问题 拜占庭容错BFT PBFT(Practical Byzantine Fault Tolerance) why 3f+1 ? PBFT 的优点 PBF ...
- 原生JS中获取位置的方案总结
获取鼠标当前位置 clientY.clientX: 鼠标当前位置 相对于 浏览器可视区域顶部.浏览器可视区域左部 的位置: pageY.pageX: 鼠标当前位置 相对于 文档顶部.文档左部的位置: ...
- Bootstrap表格组件 Bootstrap Table
Bootstrap Table是Bootstrap的一个组件 Bootstrap Table Demo:http://issues.wenzhixin.net.cn/bootstrap-table/i ...
- java的基础知识01
来自<head first java>书籍的摘录
- 8种MySQL分页方法总结
这篇文章主要介绍了8种MySQL分页方法总结,小编现在才知道,MySQL分页竟然有8种实现方法,本文就一一讲解了这些方法,需要的朋友可以参考下 MySQL的分页似乎一直是个问题,有什么优化方法吗?网上 ...