1.1 简介
docker是基于隔离(namespace)、隔离(Cgroups)、联合挂载(Union FS)等实现一种轻量化内核虚拟化技术(区别于硬件虚拟化的虚拟机)。
镜像仓库是保存镜像的中心化仓库,为镜像的分发、共享提供了基础设施。
容器是运行态的镜像,与系统其它进程相比,容器中的进程:
· 被限制:Cgroups限制容器进程的资源,如CPU、Memory、Diskid等;
· 被隔离:Namespace隔离容器之间、容器和宿主机之间的环境,如PID、Network、User、Mount、UTS、IPC等
1.2 核心技术
1.Cgroups
是内核提供的限制进程能使用的资源上限机制,通过文件系统,/sys/fs/cgroup来设置cgroups,支持限制多种资源:(CPU、memory、等)
2. namespace
是内核提供的系统系统资源隔离机制,分为多种类型,分别隔离不同系统资源:
uts:主机名和dns解析(cat /etc/hosts)
ipc:信号量、消息队列、共享内存()
pid:进程树、进程编号
network:网络设备、网络协议栈、监听端口 (ip add show)
mount:挂载点(文件系统)
user:用户和组 (cat /etc/passwd)