容器
虚拟化的实现,所有的资源都需要独立模拟出来,实现比较复杂一点。容器是一种隔离的技术,对资源进行了封装,标准化。
容器实现封闭的环境主要靠两种技术:namespace和cgroup。在不同namespace的应用看到的是不同的IP、用户空间、进程ID等。cgroup的隔离就是使得应用只能使用指定部分的 CPU和内存。运行环境的某个时刻的快照称之为镜像,镜像可以在不同的机器上运行,能够还原当时的运行环境。
目前最为主流的容器实现应用是docker。使用docker,只需要下载开发者制作好的特定系统版本的镜像,我们就可以在docker运行该系统。
docker
docker的安装
1 | yum remove docker |
这个是centos安装docker的步骤, 具体系统如何安装docker可以到docker官网上面去看说明。
1 | docker pull <docker-tags> # 下载指定tag的镜像 |
镜像的方式可以方便的进行应用的部署,还可以保证应用运行的状况是一样的,相同的镜像在不同的机器上面运行,应该都是一样的效果。
docker程序提供了许多参数用于控制容器可以使用的资源,有需要的时候可以深入学习,具体应用一下。容器内部是没有自己的内核的,共用的是宿主机的内核。
更多
容器的实现使用到了namespace和cgroup技术。记得在上一个项目的时候,有使用到network的namespace,对网络和程序进行隔离。在不同的namespace里面执行命令就在前面加一个ip netns exec
至此, 《趣谈linux操作系统》的理论部分终于小结完成。达成一个新目标。
行动,才不会被动!
欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。