微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker相关回顾未完

1.概述

优点:轻量、业务隔离、标准交付

chroot:改变某个进程的根目录,使得该程序不能访问目录之外的其他目录,和容器类似

Docker利用Namespace做主机名、网络、PID等资源的隔离,用Cgroups对进程或者进程组做资源(cpu、内存等)限制,联合文件系统用于镜像构建和容器运行环境

Namespace

功能:对内核资源进行隔离,容器中的进程可以在单独的命名空间中运行,并且只可以访问当前容器命名空间的资源

Docker主要用到5种:

  • pid namespace:隔离进程id
  • net namespace:隔离网络接口
  • mnt namespace:文件系统挂载点隔离
  • ipc namespace:信号量、消息队列、共享内存隔离
  • uts namespace:主机名和域名隔离

Cgroups

限制容器cpu和内存等资源的使用

联合文件系统

UnionFS,通过创建文件层进程操作的文件系统,非常轻快,Docker使用其为容器提供构建层,使容器可以实现写时复制以及镜像的分层构建和存储

常用的联合文件系统有AUFS、Overlay、Devicemapper

2.核心概念

镜像

容器启动的先决条件

一个只读的文件文件夹组合,包含容器运行时所需要的所有基础文件和配置信息

使用:

  1. 自己创建镜像
  2. 从镜像仓库拉取别人的镜像

容器

容器是镜像的运行实体,镜像是静态的只读文件,容器带有运行时需要的可写文件层,容器运行真正的应用进程

容器有初建、运行、停止、暂停、删除五种状态

容器有自己独立的命名空间隔离和资源限制

仓库

存储和分发Docker镜像

分为公共镜像仓库和私有镜像仓库

3.Docker架构

整体架构采用C/S模式,主要由客户端和服务端两部分组成,客户端负责发送操作指令,服务端负责接收和处理指令

客户端

docker命令、REST API、各种语言的SDK

服务端

所有后台服务的统称

dockerd:负责响应和处理来自客户端的请求,转换为具体操作

containerd:管理容器生命周期,启动并管理runc

runc:运行容器的轻量级工具

containerd-shim:将containered和真正的容器进程解耦,作为容器进程的父进程,containerd重启不影响已经启动的容器进程

4.镜像使用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐