认识容器技术

1. 容器技术概述

容器技术是一种轻量级虚拟化技术。它通过 Linux Namespace 隔离进程、网络、挂载点等资源,通过 Cgroups 限制 CPU、内存、磁盘 I/O 等资源,再通过联合文件系统把应用和依赖打包成镜像。

容器不是完整虚拟机,而是宿主机上被隔离的进程,因此启动快、占用资源少、适合快速部署。

# 查看正在运行的容器
docker ps
# 查看容器对应的宿主机进程 PID
docker inspect --format '{{.State.Pid}}' my-nginx01
# 进入容器内部查看进程
docker exec -it my-nginx01 ps -ef

命令作用:

执行结果:

关键参数:


**关键参数:**

**命令拆解:**

| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `-d` | 【核心】 | 后台运行容器,命令返回后容器继续运行,终端不会被容器日志占用。 |
| `--name` | 【核心】 | 指定容器名称 `my_nginx`,后续可以用这个名称执行 ps、logs、exec 等管理命令。 |
| `--cpus=1.5` | 【普通】 | Docker 过滤条件或配置值 `--cpus=1.5`,用于限定查询结果或改变容器运行行为。 |
| `--memory=512m` | 【普通】 | Docker 过滤条件或配置值 `--memory=512m`,用于限定查询结果或改变容器运行行为。 |
| `-p` | 【核心】 | 端口映射,格式是 `宿主机端口:容器端口`,把宿主机访问转发到容器端口。 |
| `80:80` | 【普通】 | Docker 镜像引用 `80:80`,指定要运行、上传、下载或重新标记的镜像。 |
| `nginx:latest` | 【普通】 | Docker 镜像引用 `nginx:latest`,指定要运行、上传、下载或重新标记的镜像。 |
| `\|` | 【普通】 | 管道,把前一个命令的输出交给后一个命令继续筛选或处理。 |

**注意事项:**
对比项Docker 容器传统虚拟机
虚拟化层级操作系统级虚拟化硬件级虚拟化
内核共享宿主机内核独立内核
启动速度秒级通常更慢
资源占用较低较高
隔离强度进程级隔离机器级隔离