如何在Windows Containers中运行RabbitMQ Linux Docker镜像?
在Windows容器模式下运行RabbitMQ Linux镜像的解决方案
嘿,针对你遇到的LCOW(Linux Containers On Windows)模式下运行RabbitMQ Linux镜像的问题,我整理了一套可行的操作步骤和排查要点,帮你搞定它:
先确认环境是否达标
首先得确保你的系统和Docker版本满足LCOW的要求:
- Windows系统必须是RS3版本16299及以上(也就是Windows 10 Fall Creators Update或更新的版本)
- 必须使用Docker Edge rc版本(因为LCOW还处于实验阶段,稳定版暂不支持)
- Docker守护进程的实验特性必须开启
具体操作步骤
1. 开启Docker实验特性
打开Docker Desktop的设置界面,切换到「Docker Engine」标签页,在配置JSON里添加"experimental": true这一行,保存后重启Docker服务。
如果你习惯用命令行,也可以直接编辑C:\ProgramData\Docker\config\daemon.json文件,添加该字段后重启Docker即可。
2. 运行RabbitMQ的完整命令
你之前的命令没写完,而且要注意:默认的RabbitMQ镜像不带管理界面,如果你要访问15672端口的后台,得用带management标签的镜像。完整命令如下:
docker run -d --platform=linux --name rabbit1 \ -e RABBITMQ_ERLANG_COOKIE='SWQOKODSQALRPCLNMEQG' \ -e RABBITMQ_DEFAULT_USER=rabbitmq \ -e RABBITMQ_DEFAULT_PASS=rabbitmq \ -p 5672:5672 -p 15672:15672 \ rabbitmq:3-management
这里把5672(AMQP服务核心端口)也映射出来了,这是RabbitMQ正常通信的必要端口,不能遗漏。
3. 验证容器是否正常运行
运行docker ps查看容器状态,如果显示Up状态,就打开浏览器访问http://localhost:15672,用你设置的用户名rabbitmq和密码rabbitmq登录,能正常进入管理界面就说明成功了。
常见坑排查
- 如果容器启动后马上退出,别慌,用
docker logs rabbit1查看日志,大概率是Erlang cookie配置有问题,或者端口被其他程序占用了。 - 如果提示
--platform=linux参数不被支持,回去检查:是不是用的Docker Edge版本?实验特性开了没?系统版本够不够? - 如果LCOW模式下网络不通,试试重启Docker服务,或者确认你的Docker网络是默认的NAT模式。
内容的提问来源于stack exchange,提问作者Wijnand
相关产品推荐
相关产品推荐

