一、容器的本质是一个进程
一个容器就如同你之前跑到一个虚拟机中的一个应用程序,比如跑一个Java程序。那么在容器中,主进程就是跑着你Java程序的这个Java进程,其他的进程都是围绕着这个主进程的,如果主进程失败了,那么这个容器就是失败的。
二、容器中隔离了以下资源
- mnt: 存储
- net : 网络
- pid : 进程
- user:用户
- uts :主机名、域名等
- ipc :进程间的通信
- cgroups:隔离资源,如CPU、Memory
如果对这些特性感觉有些陌生,这很正常,我们可以通过创建一个容器,然后登录到容器中,查看对应的指标,感受容器对各种资源的隔离。
我们打开两个窗口,在窗口一执行以下命令:
docker run -it --name centos1 centos:7 /bin/sh
在窗口二执行以下命令:
docker run -it --name centos2 centos:7 /bin/sh
1、存储
在第一个容器中加入一个文件hello,并查看文件:
sh-4.2# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
sh-4.2# touch hello
sh-4.2# ls
anaconda-post.log bin dev etc hello home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
在第二个容器中,查看文件结构:
sh-4.2# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
可以看到,第一个容器中创建的文件,在