【Docker】Docker底层技术应用

1. 使用命名空间nameSpace

(1)通过实训平台进入到操作系统界面,在#后输入docker run -i -t -d --name web centos /bin/bash命令,运行名为web的容器,然后在#后输入docker ps -l,查看运行的容器。示例代码如图1所示:
在这里插入图片描述
(2)在#后输入docker inspect --format ‘{{.State.Pid}}’ web命令,查看容器的进程Pid,示例代码如图2所示:
在这里插入图片描述
(3)在#后输入mkdir /var/run/netns命令,创建一个命名空间,然后在#后输入ln -s /proc/5513/ns/net /var/run/netns/web命令(id为查看的web容器Pid)示例代码如下:

[root@xxx ~]# mkdir /var/run/netns

[root@xxx ~]# ln -s /proc/5513/ns/net /var/run/netns/web

(4)在#后输入ip netns命令,查看命名空间,示例代码如图3所示:
在这里插入图片描述
(5)在#后输入ip netns exec web ip addr命令,查看命名空间IP,查看容器的IP地址。示例代码如图4所示:
在这里插入图片描述
(6)在#后输入ip netns exec web ip addr add local 172.17.0.4/16 brd + label eth0:1 dev eth0命令,添加命名空间IP地址,示例代码如下:

[root@xxx ~]# ip netns exec web ip addr add local 172.17.0.4/16 brd + label eth0:1 dev eth0

(7)在#后输入ip netns exec web ip addr命令,查看添加命名空间地址后容器信息,示例代码如图5所示:
在这里插入图片描述

2. 使用和管理Cgroups

(1)在#后输入ls /sys/fs/cgroup/命令,查看Cgroupsfs虚拟文件系统中的内容,示例如图6所示,示例代码如下:

[root@xxx ~]# ls /sys/fs/cgroup/

(2)在#后输入ls /sys/fs/cgroup/cpuset/命令,查看子系统对资源进行的限制,查看cpuset下的控制文件。示例代码如图6所示:
在这里插入图片描述

(3)在#后输入cat /sys/fs/cgroup/cpuset/cpuset.cpus命令和cat /sys/fs/cgroup/cpuset/cpuset.mems命令,查看限制这个Cgroups的进程只能在0号CPU上运行,且只会从0号内存节点分配内存。示例代码如图7所示:
在这里插入图片描述
(4)在#后输入cat /sys/fs/cgroup/cpuset/tasks命令,这里面记录了Cgroups的所有进程(包括线程),示例代码如图8所示:
在这里插入图片描述

(5)在#后输入mkdir /sys/fs/cgroup/cpuset/child/命令,创建一个Cgroups,然后在#后输入ls /sys/fs/cgroup/cpuset/child/命令,可以查看目录下自动创建的控制文件,示例代码如图9所示:
在这里插入图片描述

(6)在#后输入以下命令,设置自己创建的控制文件,把“/”(根目录)当前进程ID写入tasks文件,使能Cgroups把当前进程移动到这个Cgroups中。示例代码如下:

[root@xxx ~]# echo 0 > /sys/fs/cgroup/cpuset/child/cpuset.cpus

[root@xxx ~]# echo 0 > /sys/fs/cgroup/cpuset/child/cpuset.mems

[root@xxx ~]# echo $$ > /sys/fs/cgroup/cpuset/child/tasks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值