4.1 容器 vs 虚拟机
容器共享Host内核,秒级启动,MB级体积,进程级隔离
虚拟机有完整Guest OS,分钟级启动,GB级体积,系统级隔离
容器适合微服务/CI/CD,虚拟机适合强隔离/多OS场景
4.2 Docker核心概念
镜像(Image):只读模板,由多层(Layer)叠加。docker pull/build/images
容器(Container):镜像的运行实例,可读写。docker run/ps/stop/rm
仓库(Registry):存储分发镜像。Docker Hub / 私有仓库Harbor
4.3 Docker底层技术
Namespace:提供资源隔离 — PID/NET/MNT/UTS/IPC/USER 六种命名空间
Cgroup:提供资源限制 — 限制CPU/内存/IO/网络带宽的使用量
UnionFS:分层文件系统 — OverlayFS/AUFS,镜像层只读+容器层可写
4.4 Dockerfile
FROM 基础镜像 | RUN 执行命令 | COPY/ADD 复制文件 | CMD/ENTRYPOINT 启动命令
EXPOSE 声明端口 | WORKDIR 工作目录 | ENV 环境变量 | VOLUME 数据卷
4.5 Docker网络
bridge:默认模式,容器通过docker0网桥通信
host:共享宿主机网络栈,性能好但无隔离
none:无网络 | overlay:跨主机容器通信(Swarm/K8s)
4.6 Docker Compose
YAML文件定义多容器应用。docker-compose up -d 启动,down 停止
services 定义服务 | volumes 数据卷 | networks 网络 | depends_on 依赖
考点:Namespace管隔离,Cgroup管限制,两者结合实现容器化。ADD比COPY多了解压和URL功能。CMD可被docker run参数覆盖,ENTRYPOINT不容易被覆盖。