容器化技术(四):容器到底隔离了什么?

本文详细解读了容器的本质——进程隔离,以及它在存储、网络、用户、uts、pid和cgroups等资源上的应用。通过实例演示,展示了如何通过Docker实现容器中各资源的隔离,适合对容器技术感兴趣的读者进一步了解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、容器的本质是一个进程

一个容器就如同你之前跑到一个虚拟机中的一个应用程序,比如跑一个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

可以看到,第一个容器中创建的文件,在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值