文章目录
docker 基础手册
docker 容器技术
- 开源的容器项目,使用 Go 语言开发
- 原意“码头工人”,开发人员将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何运行容器引擎的环境中,以容器形式运行该应用程序
Container
容器- 为应用程序的开发、发布和运行提供了一个基于容器的标准化平台(Docker平台)
镜像与容器
- 容器通过运行镜像来启动,镜像是一个可执行的软件包
- 容器是镜像可运行的实列
- 镜像是用于创建 Docker 容器的只读模板
- 关系对照:对象与类的关系
容器与虚拟机
- 容器更具轻量化
docker 引擎
- 架构:c/s 架构
- 主要包含组件
- 服务器端:Docker 守护进程(创建和管理 Docker 对象:镜像、容器、网络等)
- REST API:程序与 Docker 守护进程交互的接口,便于编程方式操作平台和容器
- 客户端:命令行接口,使用 docker 命令进行操作,通过使用命令的方式控制 Docker 守护进程
- 是当前使用最为广泛的容器引擎
- 可用于 Linux 和 Windows 服务器操作系统,基于
Containerd
项目实现(行业标准创建的核心容器运行时服务)
docker 架构
Docker客户端
- 交互的主要途径
- 我们一般在服务器上安装 Docker 引擎的时候,也会一起安装客户端(Docker-client)
- Docker 命令使用 Docker API
Docker守护进程
- 守护进程监听来自 Docker API 的请求:管理镜像、容器、网络、卷这样的 Docker 对象
- 守护进程之间也可以通信
- 一台主机运行一个 Docker 守护进程,也叫 Docker 主机
Docker注册中心
- 用来存储 Docker 镜像
- DockerHub 最大的镜像存储地址,也可以自己搭建,常见的企业镜像仓库有 harbor 镜像仓库
Docker对象
Docker 的主要工作就是创建和使用各类对象
- 镜像、容器、网络、卷、插件
docker 底层技术
早期的 docker
基于成熟的 Linux Container (LXC)技术
从0.9版本开始
采用新的容器技术 libcontainer
当前版本
底层依赖的核心技术包括了 Linux 操作系统内核的名称空间、控制组、联合文件系统
名称空间 namespace
- 提供隔离的工作空间,是对全局系统资源的一种封装隔离技术,不同的名称空间拥有彼此独立的全局系统资源
- 名称空间类型
- Cgroup:控制组,隔离控制组根目录,Linux 4.6 版本版本提供
- IPC:进程间通信,隔离进程间通信所需的资源
- NETWORK:网络,为进程提供网络资源的隔离ÿ