版权声明:如需转载,请注明作者及出处 https://blog.csdn.net/qq_33317586/article/details/85225040
容器: container
容器是啥?https://zh.wikipedia.org/wiki/%E5%AE%B9%E5%99%A8
LXC:Linux Container
虚拟化的常用技术实现形式:
1.主机级虚拟化
- Type-I:直接在硬件上装虚拟机管理器(hypervisor),在虚拟机管理器上面跑虚拟机。
- Type-II:vmware,virtual box。(物理机上装操作系统,系统上装vmm(virtual mechina manager),vmm上面跑虚拟机)
2.容器级虚拟化(当年叫jail)
共享内核,隔离用户空间;vserver(chroot);
两棵树:进程树和文件系统树
chroot,namespaces,cgroups(在内核级已经实现)
jail >> vserver >> 发展到了LXC
6种名称空间:
namespace | 系统调用参数 | 隔离内容 | 内核版本 |
UTS | CLONE_NEWUTS | 主机名和域名 | 2.6.19 |
IPC | CLONE_NEWIPC | 信号量、消息队列和共享内存 | 2.6.19 |
PID | CLONE_NEWPID | 进程编号 | 2.6.24 |
Network | CLONE_NEWNET | 网络设备、网络栈、端口等 | 2.6.29 |
Mount | CLONE_NEWNS | 挂载点(文件系统) | 2.4.19 |
User | CLONE_NEWUSER | 用户和用户组 | 3.8 |
Control Groups(cgroups)
作用:实现用户空间的资源分配
LXC:
- lxc-create,template
docker可以说是lxc的增强版,简化了linux容器的使用。
docker利用lxc做容器引擎,通过镜像技术启动容器。
从docker仓库(docker hub)拉取镜像到本地运行
docker:一个容器只运行一个进程。lxc:每个容器当用户独立空间使用
联合挂载,一层一层的,只能对最上面一层进行操作,无法删除下层的文件,删除只是表面删除
扫描二维码关注公众号,回复:
4710696 查看本文章
容器编排工具:
- machine+swarm+compose
- mesos+marathon
- kubernetes(k8s)
docker自建容器引擎
libcontainer >> 发展成为runC