题目
容器基础概念与Docker运行命令
信息
- 类型:问答
- 难度:⭐
考点
容器概念理解,容器与虚拟机区别,Docker基础命令
快速回答
容器是轻量级的应用运行环境,通过操作系统级虚拟化技术隔离进程和资源。
- 容器 vs 虚拟机:容器共享主机内核,虚拟机需要独立操作系统内核
- Docker运行命令:
docker run -d -p 8080:80 --name my-nginx nginx - 核心优势:快速启动、资源占用少、环境一致性
1. 容器核心概念
容器是操作系统级别的虚拟化技术,本质是隔离的进程集合:
- 利用Linux内核特性(cgroups, namespaces)实现资源隔离
- 包含应用代码、运行时环境、系统工具和依赖库
- 镜像(Image)是只读模板,容器是镜像的运行实例
2. 容器与虚拟机区别
| 特性 | 容器 | 虚拟机 |
|---|---|---|
| 虚拟化级别 | 操作系统级 | 硬件级 |
| 启动速度 | 秒级 | 分钟级 |
| 资源占用 | 低(共享内核) | 高(独立OS) |
| 隔离性 | 进程级隔离 | 完整系统隔离 |
| 典型代表 | Docker | VMware, VirtualBox |
3. Docker运行命令详解
运行Nginx容器的标准命令:
docker run -d -p 8080:80 --name my-nginx nginx- -d:后台运行(detached模式)
- -p 8080:80:端口映射(主机8080→容器80)
- --name:指定容器名称
- nginx:官方镜像名称
4. 最佳实践
- 使用
docker pull nginx预先拉取镜像避免超时 - 生产环境应指定镜像版本标签,如
nginx:1.23 - 通过
docker ps检查容器运行状态
5. 常见错误
- 端口冲突:主机端口已被占用 → 改用空闲端口
- 忘记-d参数:终端被占用 → 按Ctrl+P+Q退出或新开终端
- 权限问题:在命令前加
sudo或配置用户组
6. 扩展知识
- cgroups:限制CPU/内存等资源(如
--memory=500m) - namespaces:提供PID/网络/文件系统隔离
- 容器生命周期:
docker start/stop/rm管理容器