docker run 选项汇总
以下是 Docker run 命令的最新选项(截至2025年)及其详细解释,按功能分类整理:
一、基础运行控制
| 选项 | 简写 | 说明 | 示例 |
|---|---|---|---|
--detach |
-d |
后台运行容器 | docker run -d nginx |
--interactive --tty |
-it |
分配交互式终端(通常与 /bin/bash 结合) |
docker run -it ubuntu bash |
--rm |
- | 容器退出时自动删除(临时测试用) | docker run --rm alpine |
--name |
- | 指定容器名称(默认随机生成) | --name my_web |
--restart |
- | 容器退出时的重启策略(no/on-failure/always/unless-stopped) |
--restart=always |
二、资源限制
| 选项 | 说明 | 示例 |
|---|---|---|
--memory / -m |
内存限制(支持 b/k/m/g) |
-m 512m |
--cpus |
限制 CPU 核心数 | --cpus=1.5 |
--cpu-shares |
CPU 权重(默认 1024) | --cpu-shares=512 |
--memory-swap |
内存+交换分区限制 | --memory-swap=1g |
--blkio-weight |
块 I/O 权重(10-1000) | --blkio-weight=500 |
三、网络配置
| 选项 | 说明 | 示例 |
|---|---|---|
--publish / -p |
端口映射(主机端口:容器端口) |
-p 8080:80 |
--publish-all / -P |
自动映射所有暴露端口到随机主机端口 | docker run -P nginx |
--network |
指定网络模式(bridge/host/none/自定义) |
--network=host |
--dns |
自定义 DNS 服务器 | --dns=8.8.8.8 |
--add-host |
添加主机名到 IP 映射 | --add-host="db:192.168.1.1" |
四、存储与数据管理
| 选项 | 说明 | 示例 |
|---|---|---|
--volume / -v |
挂载主机目录或命名卷 | -v /data:/app/data |
--mount |
更灵活的挂载(支持 bind/volume/tmpfs) |
--mount type=bind,source=/data,target=/app |
--tmpfs |
挂载内存文件系统 | --tmpfs /tmp:size=100m |
--volumes-from |
从其他容器挂载卷 | --volumes-from db_container |
五、环境与配置
| 选项 | 简写 | 说明 | 示例 |
|---|---|---|---|
--env / -e |
设置环境变量 | -e DB_HOST=db |
|
--env-file |
从文件读取环境变量 | --env-file=.env |
|
--workdir / -w |
指定容器内工作目录 | -w /app |
|
--entrypoint |
覆盖镜像默认入口点 | --entrypoint /bin/sh |
六、安全控制
| 选项 | 说明 | 示例 |
|---|---|---|
--user / -u |
指定运行用户(UID 或用户名) | --user=1000 |
--read-only |
只读文件系统(需配合 --tmpfs 写临时文件) |
--read-only |
--cap-add / --cap-drop |
添加/删除 Linux 能力 | --cap-add=SYS_ADMIN |
--security-opt |
安全选项(如 SELinux/AppArmor) | --security-opt seccomp=unconfined |
七、日志与调试
| 选项 | 说明 | 示例 |
|---|---|---|
--log-driver |
指定日志驱动(json-file/syslog/none) |
--log-driver=syslog |
--log-opt |
日志驱动选项(如大小限制) | --log-opt max-size=10m |
--health-cmd |
定义健康检查命令 | --health-cmd="curl -f http://localhost" |
--health-interval |
健康检查间隔 | --health-interval=5s |
八、高级功能
| 选项 | 说明 | 示例 |
|---|---|---|
--gpus |
分配 GPU 设备(需 NVIDIA 支持) | --gpus all |
--device |
挂载主机设备到容器 | --device=/dev/sda:/dev/xvda |
--init |
使用 tini 作为 PID 1 进程(避免僵尸进程) |
--init |
--platform |
指定平台(如 linux/amd64) |
--platform=linux/arm64 |
完整示例场景
-
生产环境 Web 服务
docker run -d \ --name web \ -p 80:80 \ --restart unless-stopped \ -v /data:/usr/share/nginx/html \ --memory=1g \ --cpus=2 \ nginx:alpine -
交互式开发容器
docker run -it --rm \ -v $(pwd):/code \ -w /code \ --user 1000 \ python:3.9 \ bash -
GPU 加速任务
docker run --gpus all \ -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \ nvidia/cuda:12.0-base nvidia-smi
注意事项
-
部分选项需结合系统支持(如
--gpus需 NVIDIA 驱动)56。 -
生产环境建议限制资源(
--memory/--cpus)并禁用特权模式(--privileged)48。 -
使用
docker run --help查看最新完整选项列表7。
郭慕荣博客园

浙公网安备 33010602011771号