Docker run 子命令与运行优化相关的参数

Docker run 子命令与运行优化相关的参数

Docker run 命令有许多参数可以优化容器性能和资源使用。以下是与运行优化相关的重要参数:

资源限制参数

  1. CPU 资源控制

    • --cpus=<value>: 限制容器可以使用的 CPU 数量(Docker 1.13+)
    • --cpu-shares/-c: 设置 CPU 共享权重(默认 1024)
    • --cpuset-cpus: 指定容器可以运行的 CPU 核心(如 "0-3" 或 "0,1")
  2. 内存限制

    • --memory/-m: 设置内存限制(如 "512m" 或 "2g")
    • --memory-swap: 设置内存+交换分区总限制
    • --memory-reservation: 设置内存软限制
  3. I/O 限制

    • --blkio-weight: 设置块 IO 权重(10-1000)
    • --device-read-bps: 限制设备的读取速率(如 "/dev/sda:1mb")
    • --device-write-bps: 限制设备的写入速率

性能优化参数

  1. 文件系统优化

    • --tmpfs: 挂载 tmpfs 文件系统(内存文件系统)
    • --mount: 更灵活的挂载选项(替代 -v
    • --volumes-from: 重用其他容器的卷
  2. 网络优化

    • --network: 指定网络模式(host/bridge/none 等)
    • --dns: 自定义 DNS 服务器
    • --dns-search: 设置 DNS 搜索域
  3. 进程管理

    • --ulimit: 设置 ulimit 选项
    • --oom-kill-disable: 禁用 OOM Killer
    • --pids-limit: 限制容器内的进程数

启动优化参数

  1. 容器初始化

    • --init: 使用 init 进程作为 PID 1(处理僵尸进程)
    • --cap-add/--cap-drop: 添加/删除 Linux 能力
  2. 重启策略

    • --restart: 设置容器退出时的重启策略(no/on-failure/always/unless-stopped)
  3. 安全优化

    • --security-opt: 设置安全选项(如 seccomp 或 SELinux)
    • --userns: 使用用户命名空间

使用示例

bash 复制代码
# 限制 CPU 和内存使用
docker run -it --cpus=1.5 --memory=2g --memory-swap=3g nginx

# 使用 tmpfs 提高临时文件访问速度
docker run --tmpfs /tmp:rw,size=512m nginx

# 优化 IO 性能
docker run --device-read-bps /dev/sda:1mb --device-write-bps /dev/sda:1mb mysql

# 使用 init 系统处理僵尸进程
docker run --init -d my_app

这些参数可以根据具体应用场景进行组合使用,以达到最佳的性能和资源利用率。

相关推荐
Patrick_Wilson4 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵6 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1116 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽8 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康9 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn8612 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
2601_9618752412 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant