You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统Docker Desktop中Solace镜像启动失败求助

解决Solace PubSub Standard容器共享内存不足问题的实用思路

先查Docker Desktop的全局共享内存限制

Docker Desktop有自己的全局共享内存上限,就算你启动容器时加了--shm-size=3g,如果全局设置比这个值小,容器实际能用的还是受全局约束:

  • 打开Docker Desktop的设置,找到Resources > Advanced(不同版本位置可能有差异,比如有的在Settings > Resources > Memory里)
  • 把“Shared Memory”(共享内存)调到1GB以上,建议直接设3GB,保存后重启Docker Desktop

确认容器启动命令的参数位置

--shm-size参数放错位置会直接失效,一定要放在镜像名称前面:

  • 正确的启动命令参考:
    docker run -d --name solace -p 8080:8080 -p 55555:55555 --shm-size=3g solace/solace-pubsub-standard:latest
    
    要是把参数放在镜像名后面,Docker会把它当成镜像的启动参数,根本不会生效

验证容器实际的共享内存大小

启动容器后,进去看看/dev/shm的真实大小,确认参数有没有生效:

  1. 进入容器:
    docker exec -it solace /bin/bash
    
  2. 查看共享内存:
    df -h /dev/shm
    
    或者用mount | grep shm,如果显示的大小还是只有几十MB,说明参数没起作用,回头检查全局设置或者命令格式

试试挂载主机目录替代默认/dev/shm

要是全局设置调了还是不行,可以直接挂载主机上的目录当容器的共享内存:

  • 启动命令改成这样:
    docker run -d --name solace -p 8080:8080 -p 55555:55555 -v /path/to/host/shm:/dev/shm solace/solace-pubsub-standard:latest
    
    注意/path/to/host/shm是你主机上的目录,要确保这个目录有足够空间和权限,而且主机内存够支撑这个挂载的使用

检查Docker Desktop版本

有些旧版本的Docker Desktop存在--shm-size的bug,试试升级到最新稳定版,再重新启动容器测试

内容的提问来源于stack exchange,提问作者Tech123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:56:03