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

完整示例场景

  1. 生产环境 Web 服务

    docker run -d \
      --name web \
      -p 80:80 \
      --restart unless-stopped \
      -v /data:/usr/share/nginx/html \
      --memory=1g \
      --cpus=2 \
      nginx:alpine
  2. 交互式开发容器

    docker run -it --rm \
      -v $(pwd):/code \
      -w /code \
      --user 1000 \
      python:3.9 \
      bash
  3. GPU 加速任务

    docker run --gpus all \
      -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \
      nvidia/cuda:12.0-base nvidia-smi

注意事项

  • 部分选项需结合系统支持(如 --gpus 需 NVIDIA 驱动)56。

  • 生产环境建议限制资源(--memory/--cpus)并禁用特权模式(--privileged48。

  • 使用 docker run --help 查看最新完整选项列表7。

posted @ 2025-06-29 07:11  郭慕荣  阅读(53)  评论(0)    收藏  举报