Docker run 子命令与运行优化相关的参数
Docker run
命令有许多参数可以优化容器性能和资源使用。以下是与运行优化相关的重要参数:
资源限制参数
-
CPU 资源控制
--cpus=<value>
: 限制容器可以使用的 CPU 数量(Docker 1.13+)--cpu-shares
/-c
: 设置 CPU 共享权重(默认 1024)--cpuset-cpus
: 指定容器可以运行的 CPU 核心(如 "0-3" 或 "0,1")
-
内存限制
--memory
/-m
: 设置内存限制(如 "512m" 或 "2g")--memory-swap
: 设置内存+交换分区总限制--memory-reservation
: 设置内存软限制
-
I/O 限制
--blkio-weight
: 设置块 IO 权重(10-1000)--device-read-bps
: 限制设备的读取速率(如 "/dev/sda:1mb")--device-write-bps
: 限制设备的写入速率
性能优化参数
-
文件系统优化
--tmpfs
: 挂载 tmpfs 文件系统(内存文件系统)--mount
: 更灵活的挂载选项(替代-v
)--volumes-from
: 重用其他容器的卷
-
网络优化
--network
: 指定网络模式(host/bridge/none 等)--dns
: 自定义 DNS 服务器--dns-search
: 设置 DNS 搜索域
-
进程管理
--ulimit
: 设置 ulimit 选项--oom-kill-disable
: 禁用 OOM Killer--pids-limit
: 限制容器内的进程数
启动优化参数
-
容器初始化
--init
: 使用 init 进程作为 PID 1(处理僵尸进程)--cap-add
/--cap-drop
: 添加/删除 Linux 能力
-
重启策略
--restart
: 设置容器退出时的重启策略(no/on-failure/always/unless-stopped)
-
安全优化
--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
这些参数可以根据具体应用场景进行组合使用,以达到最佳的性能和资源利用率。