认识容器技术
1. 容器技术概述
容器技术是一种轻量级虚拟化技术。它通过 Linux Namespace 隔离进程、网络、挂载点等资源,通过 Cgroups 限制 CPU、内存、磁盘 I/O 等资源,再通过联合文件系统把应用和依赖打包成镜像。
容器不是完整虚拟机,而是宿主机上被隔离的进程,因此启动快、占用资源少、适合快速部署。
# 查看正在运行的容器
docker ps
# 查看容器对应的宿主机进程 PID
docker inspect --format '{{.State.Pid}}' my-nginx01
# 进入容器内部查看进程
docker exec -it my-nginx01 ps -ef命令作用:
- 查看 Docker 容器列表;默认显示运行中的容器,使用
-a可以连同已停止容器一起查看。
- 查看容器或镜像的详细配置、网络、挂载和运行状态。
- 在运行中的容器内执行命令,例如进入 Shell 排查问题。
执行结果:
- 成功后会输出容器列表;如果没有运行中的容器,列表可能为空。
- 成功后应以该命令实际输出、生成的文件或目标服务状态为准;失败时先阅读终端报错,再核对命令参数和运行环境。
关键参数:
**关键参数:**
**命令拆解:**
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `-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 容器 | 传统虚拟机 |
|---|---|---|
| 虚拟化层级 | 操作系统级虚拟化 | 硬件级虚拟化 |
| 内核 | 共享宿主机内核 | 独立内核 |
| 启动速度 | 秒级 | 通常更慢 |
| 资源占用 | 较低 | 较高 |
| 隔离强度 | 进程级隔离 | 机器级隔离 |