pdf文档 Linux Docker Mess

7.40 MB 77 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了Docker的核心技术与Linux系统的关系。Docker通过联合挂载(Union Mount)技术叠加文件系统层,构建容器运行时态。Linux的Namespace(包括pid、net等)和cgroup用于实现资源隔离与限制。文档还阐述了如何在容器中执行命令,如docker exec和attach,以及Docker容器的安装配置过程。这些技术为Docker提供了高效的容器化虚拟化解决方案。
AI总结
以下是文档内容的简要总结: ### Docker 概念与核心技术 1. **Docker 的运行原理** - Docker 的运行依赖于 `bootfs` 和 `rootfs`。 - **`bootfs`**:主要包含引导加载器和内核,启动后会被卸载。 - **`rootfs`**:包含典型 Linux 系统的目录(如 `/dev`, `/proc`, `/bin`, `/etc`)。不同 Linux 发行版的 `rootfs` 有所不同,但 `bootfs` 通常一致,因此可以共用。 2. **联合挂载(Union Mount)** - Docker 在初始化时将 `rootfs` 以只读方式加载并检查,随后通过联合挂载(Union Mount)将一个可写文件系统叠加在只读的 `rootfs` 上。 - 每个文件系统层(FS Layer)可以设置为只读,并向上叠加,构成一个容器的运行时态。 - 上层 Image 依赖下层 Image,下层 Image 称为父 Image(Parent Image),没有父 Image 的 Image 称为基础 Image(Base Image)。 3. **隔离性与资源限制** - **PID Namespace**:不同用户的进程通过 PID 命名空间隔离,允许嵌套,支持 Docker in Docker。 - **Net Namespace**:通过网络命名空间实现隔离,每个容器有独立的网络设备、IP 地址和路由表。默认通过 `veth` 将容器网络与宿主机的 `docker0` 网桥连接。 - **CGroup**:用于设置资源限制,如内存限制和网络标记。 4. **进入容器的方式** - **使用 `docker attach`**:连接到已经运行的容器终端。 - **使用 `docker exec`**:在运行的容器中执行命令(如启动 Bash 会话)。 - **其他方式**:如使用 `nsenter`、`nsinit` 等工具,但需要额外学习和安装。 ### Docker 安装与配置 1. **安装 Docker** - 在 Ubuntu 14.04 上安装 Docker: ```bash sudo apt-get update sudo apt-get install curl curl -sSL https://get.docker.com/ | sh ``` - 将用户加入 `docker` 组以避免使用 `sudo`: ```bash sudo usermod -aG docker <用户名> ``` 注销后生效。 2. **配置 Docker API** - 修改 `/etc/default/docker` 文件,添加以下配置: ```bash DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:6732" ``` - 重启 Docker 服务: ```bash sudo service docker restart ``` ### Docker 的实际应用 1. **百度 BAE 平台**:基于 Docker 的 PaaS 服务。 2. **Docker 的优势**:操作系统级虚拟化,实现轻量级容器化。 ### 总结 Docker 通过联合挂载和命名空间实现了高效、轻量的容器化虚拟化解决方案,支持资源隔离与限制。其核心技术包括 `bootfs` 和 `rootfs` 的分离、联合文件系统的叠加、PID 和网络命名空间的隔离,以及 CGroup 的资源管理。Docker 的安装和配置相对简单,且在云计算和 PaaS 平台中得到广泛应用。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 65 页请下载阅读 -
文档评分
请文明评论,理性发言.