飞天使-docker知识点7-docker-compose与namespaces

文章目录

docker-compose

复制代码
# cat docker-compose.yml 
version: '3.8'
services:
  nginx-server:
    image: nginx
    container_name: nginx-web1
#    network_mode: bridge #网络1,使用docker安装后的默认网桥
    expose:
      - 80
      - 443
    ports:
      - "80:80"
      - "443:443"
    networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有两块网卡
      - front
      - backend


  tomcat-server:
    image: tomcat
    container_name: tomcat-app1
#    network_mode: bridge #网络1,使用docker安装后的默认网桥
    expose:
      - 8080
    ports:
      - "8080:8080"
    networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡
      - backend


networks:
  front: #自定义前端服务网络
    driver: bridge
  backend:  #自定义后端服务的网络
    driver: bridge
  default: #使用已经存在的docker0默认172.17.0.1/16的网络
    external:
      name: bridge
namespace与cgroup
复制代码
Namespace和cgroup是Linux操作系统中的两个重要概念,用于实现进程隔离和资源管理。

Namespace(命名空间)是一种隔离机制,它将系统资源在不同的环境中进行隔离,使得每个环境都拥有自己独立的视图,就好像它们在运行在一个独立的操作系统中一样。常见的Namespace包括:

PID Namespace:允许进程在不同的Namespace中拥有不同的PID(进程ID),实现进程隔离。
Mount Namespace:为每个Namespace提供独立的文件系统挂载点视图,使得每个Namespace中的进程只能看到特定的文件系统层次结构。
Network Namespace:提供独立的网络栈,每个Namespace中的进程可以拥有自己的网络接口、IP地址等,实现网络隔离。
User Namespace:允许每个Namespace中的进程拥有不同的用户和组标识符,实现用户隔离。
而cgroup(控制组)是一种资源管理机制,它可以限制、统计和分配系统中的各种资源,例如CPU、内存、磁盘IO等。cgroup通过将进程组织在层次结构中,并为每个层次结构分配资源限制,实现对资源的精细控制和管理。

简单来说,Namespace提供了进程隔离的环境,使得进程在不同的Namespace中运行时互相看不到对方,而cgroup则提供了对系统资源的控制和管理能力,可以限制每个Namespace中的进程使用的资源数量。

通过使用Namespace和cgroup,可以实现虚拟化、容器化等技术,提供更好的资源隔离和管理,同时提高系统的安全性和性能。
编辑中
相关推荐
ai小陈5 分钟前
GPU服务器租用部署实战:用systemd守护模型推理服务
运维·服务器·人工智能·ai·php·gpu算力
阳光九叶草LXGZXJ6 分钟前
达梦数据库-学习-68-dmasm0X_XXXXXX.log日志激增
linux·运维·数据库·sql·学习
开开心心_Every7 分钟前
文件夹批量创建工具支持同级和多层级
运维·服务器·游戏·jupyter·智能手机·pdf·postman
KING-WU5128 分钟前
Linux 工具之 yum、vim、gcc
linux·运维·服务器·后端
沫璃染墨31 分钟前
《从零入门Linux系统篇(五十三):线程篇·六——线程互斥详解:从并发问题到mutex互斥锁》
linux·运维·服务器·开发语言·后端·架构·系统架构
程序员-Benothing33 分钟前
Shell循环教程:for、while、until、break、continue详解
linux·运维·服务器
旺仔Sec39 分钟前
2026年江西省职业院校技能大赛(高职组)麒麟工坊运维保障竞赛样题
运维
小白的码BUG之路42 分钟前
Ubuntu -- 使用命令firewall-cmd
linux·运维·服务器
赵民勇1 小时前
gsettings命令详解
linux·运维
承渊政道1 小时前
Linux系统学习【线程概念与控制核心知识详解】
linux·运维·vscode·学习·ubuntu·线程创建 终止 等待