我对docker不太成熟的认知!写的不好望指出!互相学习、交流!
对docker的认知
为什么说Linux内核又躺枪了,日常甩锅,只能把锅甩给Linux 内核了,哈哈哈…
docker依赖于Linux的两个内核特性:
Namespaces - 命名空间
Control groups(cgroups)- 控制组
Namespaces
命名空间提供了一种系统资源的隔离,包括了文件系统、网络、进程等。
docker有以下5种命名空间:
PID:进程隔离
NET:网络管理接口
IPC:管理跨进程通信访问
MNT:管理挂载点
UTS:隔离内核和版本标识
Control groups
这是Linux内核提供的一种可以限制,记录,隔离物理进程组的机制。他提供了以下功能:
资源限制
优先级设定
资源计量
资源控制
docker 基本能力
Namespaces和Control groups带给了容器下面的能力:
文件系统的隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:每个容器间虚拟网络接口和ip地址都是分开的
资源隔离和分组:Control groups可以将CPU和内存之类的资源独立分配给每个docker容器
使用场景
我们在使用docker容器的时候,经常要给容器里面挂载本地服务器目录,从而实现某个文件在宿主机和容器内部都可以访问的效果。
例如:在容器内部进行删除、