docker容器管理

1、创建容器常用命令

2、容器资源限制

3、容器管理常用命令

4、容器实现核心技术:Namespace

  • 在容器化中,一台物理计算机可以运行多个不同操作系统,就需要解决“隔离性”,彼此感知不到对方存在,有问题互不影响

  • Linux内核引入namespace概念,目的是将特定的全局系统资源通过抽象的方法使得namespace中的进程开起来拥有自己隔离的资源。docker就是借助这个机制实现资源隔离。

  • linux的namespace机制提供6种不同命名空间

    • IPC:隔离进程间通信

    • MOUNT:隔离文件系统挂载点

    • NET:隔离网络协议栈

    • PID:隔离进程号,进程命名空间是一个父子结构,子空间对父空间可见

    • USER:隔离用户

    • UTS:隔离主机名和域名

5、容器实现核心技术:CGroups

  • CGroups:所有任务就是运行在系统中的一个进程,而CGroups以某种标准将一组进程为目标进行资源分配和控制,例如CPU、内存、带宽等,并且可以动态配置。

  • CGroups主要功能:

    • 限制资源组使用的资源数量:可以为进程组设定资源使用上线,如内存;

    • 进程组优先控制:可以为进程组分配特定CPU、磁盘IO吞吐量;

    • 记录进程组使用的资源数量:例如记录某个进程使用CPU的时间

    • 进程组控制:可以将进程组挂起或恢复

6、docker核心组件之间的关系

  • Docker Daemon: docker守护进程,负责与docker client交互,并管理镜像、容器

  • Containerd:是一个简单的守护进程,向上给Docker Daemon提供接口,向下通过containerd-shim结合runC管理容器

  • runC:一个命令行工具,它根据OCI标准来创建和运行容器

  • docker进程组示例

7、docker容器小结

posted @ 2021-02-18 13:13  那就这样吧~  阅读(71)  评论(0编辑  收藏  举报