zoukankan      html  css  js  c++  java
  • liunx mnt命名空间

    Mount namespace的作用是隔离mount point,每个mnt namespace内的文件结构可以单独修改,互不影响。

    当前进程所在的mnt namespace的所有挂载点信息记录在以下三个文件中

    为接下来的操作准备两个目录,每个目录下一个文件

    启一个终端

    [root@k8s-nginx1 ~]# ll /proc/$$/mount*
    -r--r--r-- 1 root root 0 Nov 26 13:45 /proc/4433/mountinfo
    -r--r--r-- 1 root root 0 Nov 26 13:45 /proc/4433/mounts
    -r-------- 1 root root 0 Nov 26 13:45 /proc/4433/mountstats

    创建新的mount namespace和uts namespace并运行bash ###

    [root@k8s-nginx1 ~]# unshare --mount --uts bash
    ### 设置hostname以便于观察 ### [root@k8s
    -nginx1 ~]# hostname namespace-01 && exec bash
    ### 查看对应namespace的inode number ### [root@namespace
    -01 ~]# readlink /proc/$$/ns/{uts,mnt} uts:[4026532431] mnt:[4026532430]
    ### 将上面创建的namespace01目录挂在到/mnt ###
    [root@namespace-01 ~]# mount --bind namespace01/ /mnt/

    1

    ### 查看/mnt目录下的文件 ###
    [root@namespace-01 ~]# ll /mnt/
    total 0
    -rw-r--r-- 1 root root 0 Nov 26 13:46 namespace01.txt

    另启动一个终端

    创建新的mount namespace和uts namespace,执行bash ###

    [root@k8s-nginx1 ~]# unshare --mount --uts bash
    [root@k8s-nginx1 ~]# hostname namespace-02 && exec bash
    [root@namespace-02 ~]# readlink /proc/$$/ns/{uts,mnt}
    uts:[4026532433]
    mnt:[4026532432]
    [root@namespace-02 ~]# ll /mnt/
    total 0
    drwxr-xr-x. 2 root root 6 Nov  6 13:52 cdrom
    [root@namespace-02 ~]# mount --bind namespace02/ /mnt/
    [root@namespace-02 ~]# ll /mnt/
    total 0
    -rw-r--r-- 1 root root 0 Nov 26 13:46 namespace02.txt

    当新的mount namespace创建时,会从创建进程所在的namespace复制挂载点信息,所以namespace01和namespace02都可以看到相同的文件视图

    [root@namespace-01 ~]# unshare --mount --uts bash
    [root@namespace-01 ~]# hostname namespace-03 && exec bash
    [root@namespace-03 ~]# readlink /proc/$$/ns/{uts,mnt}
    uts:[4026532435]
    mnt:[4026532434]
    [root@namespace-03 ~]# ll /mnt/
    total 0
    -rw-r--r-- 1 root root 0 Nov 26 13:46 namespace01.txt
  • 相关阅读:
    Java:类与继承(隐藏和覆盖的问题)
    Java中的static关键字解析
    面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)
    面向对象要点(this关键字)
    急须知道postman RSA加密的方式
    RSA加密原理
    postman获取变量
    Mysql通过cmd访问
    一个简单的postman实例
    sum(coalesce(adjust_value,prediction_value))
  • 原文地址:https://www.cnblogs.com/caonw/p/11935104.html
Copyright © 2011-2022 走看看