Docker部署WebLogic 12.2.1时新服务器未在控制台显示
看起来你遇到的问题是Managed Server容器正常运行,但管理控制台里看不到服务器实例,只生成了对应的Machine,没法部署WAR包。结合你用的WebLogic 12.2.1和Docker 17.03.1-ce版本,我来分析可能的原因和解决方案:
可能的问题根源
createServer.sh缺少必要参数
官方的createServer.sh脚本通常需要指定要创建的服务器名称等关键参数,如果没有传递这些变量,脚本可能只会创建Machine对象,而不会在adminServer上注册对应的Managed Server实例。网络通信或配置未正确关联
虽然容器在同一桥接网络,但可能adminServer的监听地址限制为localhost,导致Managed Server无法向其注册;或者createServer.sh没有正确利用Docker链接提供的环境变量来连接adminServer。
具体解决方案
1. 运行容器时指定服务器名称环境变量
重新创建Managed Server容器时,通过-e参数传递SERVER_NAME变量,明确要创建的服务器名称,比如:
docker run -d --link wlsadmin:wlsadmin -e SERVER_NAME=managedServer1 -p 7002:7001 1221-domain createServer.sh
这样脚本会根据指定的名称创建并注册对应的Managed Server,而不只是生成Machine。
2. 验证adminServer的监听地址
进入wlsadmin容器,检查WebLogic域的config.xml文件(通常在/user_projects/domains/base_domain/config/config.xml),确保adminServer的listen-address配置为0.0.0.0或者容器的IP,而不是localhost。如果是localhost,其他容器无法访问adminServer的管理端口,导致注册失败。
3. 检查Managed Server的详细日志
虽然docker logs没有显示错误,但可以进入Managed Server容器,查看WebLogic的服务器日志(路径类似/user_projects/domains/base_domain/servers/<你的服务器名称>/logs/<服务器名称>.log),这里会有更详细的注册过程日志,可能能找到隐藏的连接或注册失败原因。
4. 手动创建并启动Managed Server
如果自动脚本注册仍有问题,可以先在管理控制台手动创建Managed Server:
- 进入
Environment/Servers,点击New创建新服务器,指定名称(比如managedServer1),并关联到已生成的Machine。 - 然后用以下命令启动容器,直接启动已创建的Managed Server:
docker run -d --link wlsadmin:wlsadmin -p 7002:7001 1221-domain startManagedWebLogic.sh managedServer1 http://wlsadmin:7001
这个命令会直接连接adminServer并启动指定的Managed Server,避免脚本自动创建的问题。
内容的提问来源于stack exchange,提问作者Edwin

