Docker 容器内进程与 Namespace

原本是继续阅读《每天5分钟玩转Kubernetes》一书的,发现该书所用的 Kubernetes 版本着实有点老旧( 1.7), 当前版本是 1.18。操作起来有些不同,所以找来了最新的 《Kubernetes in Action》第二版 来看,该书还在写作当中。第二章全是讲 Docker 的内容,本人读书有个不好的习惯,就是不喜欢跳过跳过。看了总会有收获的,这不,就从中稍微理清了 Docker 容器内进程与 Namespace 的关系。

Docker 容器间的进程本质上是宿主主上的一个进程,它能相互隔离靠的是 chroot, namespace 和 cgroup(对 CPU, 内存,磁盘,带宽等的配额)。千万不要认为启动一个 Docker 容器就是启动了一个虚拟机。

其中 namespace 实现了以下几项资源的隔离

  1. Mount: 挂载点(文件系统)
  2. PID: 进程 ID
  3. Network: 网络设备,网络栈,端口等
  4. IPC: 进程间通信,信号量,消息队列和共享等
  5. UTS: 主机名和域名
  6. User ID: 用户和组 ID

阅读全文 >>

JDOM 使用 XPath 查找带 NameSpace 的节点

对于 XML 文件中不带命名空间(NameSpace) 的节点,如

<blog_Content>

用 JDOM 的 XPath 来搜索这个节点时可用下面之中任一代码:

①   List<Element> elements = XPath.selectNodes(document,"//blog_Content");

②   XPath xpath = XPath.newInstance("//blog_Content");
       List<Element> elements = xpath.selectNodes(document);

但是如果是查找带命名空间的节点,如 阅读全文 >>

Struts2 的 struts.xml 配置中 namespace 的使用

Struts2 的 struts.xml 中是分 package 配置的,可以为 package 设置 namespace 属性,如

<package namespace="/secure"   ....>
    ......
</package>

如果没有指定 namespace 属性,默认 namespace 是 ""。使用 namespace 可以方便于按不同目的规划对应用的访问规则。比如不同 namespace 下配置了不同的拦截器就可以实现权限的控制,如 "/secure" 下已登陆用户才能访问,"/public" 下可公开访问的。 阅读全文 >>

XML 的中阶知识巩固之命名空间


1. 命名空间 (Namespace) 的引入

比如有两份 XML 数据

集成在一起时就是 阅读全文 >>