123

第1章 Docker 容器介绍

1.1 docker是什么

Docker 是 Docker.Inc 公司开源的一个基于 LXC 技术之上构建的 Container 容器引擎, 源代码托管
在 GitHub 上, 基于 Go 语言并遵从 Apache2.0 协议开源。
Docker 是通过内核虚拟化技术(namespaces 及 cgroups 等) 来提供容器的资源隔离与安全保障等。 由
于 Docker 通过操作系统层的虚拟化实现隔离, 所以 Docker 容器在运行时, 不需要类似虚拟机(VM)
额外的操作系统开销, 提高资源利用率。

1.2 namespace 命名空间

Mount Namespace            - 用于隔离文件系统的挂载点
UTS Namespace              - 用于隔离 HostName 和 DomianName
IPC Namespace              - 用于隔离进程间通信
PID Namespace              - 用于隔离进程 ID
Network Namespace          - 用于隔离网络
User Namespace             - 用于隔离用户和用户组 UID/GID

1.3 cgroups 资源限制

控制组(cgroups) 是 Linux 内核的一个特性, 主要用来对共享资源进行隔离、 限制、 审计等。 只有
能控制分配到容器的资源, 才能避免当多个容器同时运行时的对系统资源的竞争。
控制组技术最早是由 Google 的程序员在 2006 年提出, Linux 内核自 2.6.24 开始支持。
控制组可以提供对容器的内存、 CPU、 磁盘 IO 等资源的限制和审计管理。

1.4 docker 的三个重要概念

**Image(镜像)