首页 > 解决方案 > 无法在 docker for windows 中提供 sysctl 选项

问题描述

我正在使用 rabbitmq docker image https://hub.docker.com/_/rabbitmq并尝试将一些 sysctl 配置传递给命令

docker run -d --restart unless-stopped -p 8883:8883 -p 1883:1883 -p 15675:15675 -p 15672:15672 --sysctl net.core.somaxconn=32768 --sysctl net.ipv4.tcp_max_syn_backlog=4096 --sysctl net.ipv4.tcp_rmem='4096 120000 16777216' --sysctl net.ipv4.tcp_wmem='4096 120000 16777216' -e RABBITMQ_VM_MEMORY_HIGH_WATERMARK=0.9 -e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="+P 2000000" -t probusdev/hes-rabbitmq:latest

该命令在 linux os 中运行时运行良好,但当我在使用 docker for windows 的 windows 主机上运行时失败。错误:无法在本地找到图像“120000:最新”

如果我在 --sysctl net.ipv4.tcp_rmem="'4096 120000 16777216'" 这样的引号中传递 sysctl args,我会收到来自守护进程的错误错误响应:OCI 运行时创建失败:container_linux.go:345:启动容器进程导致“process_linux .go:430:容器初始化导致“写入 sysctl 密钥 net.ipv4.tcp_max_syn_backlog:打开 /proc/sys/net/ipv4/tcp_max_syn_backlog:没有这样的文件或目录”:未知。

如何正确传递参数?这在Windows中可能吗?

标签: dockerrabbitmq

解决方案


推荐阅读