Docker 主要通过容器化技术实现轻量级虚拟化,其核心是共享宿主机内核但隔离进程和资源。以下是 Docker 可以虚拟化的主要资源类型及其实现方式:
--cpus
限制容器使用的 CPU 核数(如 --cpus=1.5
)。--cpuset-cpus
)。-m
或 --memory
限制内存用量(如 -m 512m
)。--memory-reservation
)和 OOM 优先级。-v
或 --mount
挂载宿主机目录或 Docker 管理卷。tmpfs
挂载(内存文件系统):--tmpfs /app/cache
。bridge
(默认)、host
(共享宿主机网络)、overlay
(跨主机通信)、macvlan
(直接分配 MAC 地址)。-p
将容器端口映射到宿主机(如 -p 8080:80
)。--gpus
参数调用 NVIDIA GPU(需安装 nvidia-container-toolkit
)。--device
挂载宿主机设备(如 --device /dev/ttyUSB0
)。--user
指定容器内用户(如 --user 1000
),隔离 root 权限。--cap-add NET_ADMIN
或 --cap-drop KILL
)。-e
传递隔离的环境变量(如 -e DB_HOST=db
)。/etc/localtime
)或修改系统时间(需 --cap-add SYS_TIME
)。如果需要更强的隔离性或不同内核,可考虑 Docker + VM 的组合方案(如 Docker Desktop 基于 Hyper-V 运行 Linux 容器)。