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

如何通过JBoss CLI将宿主机WAR包部署至已启动的JBoss Docker容器(不使用自定义镜像)

部署WAR包到JBoss Docker容器(无需自定义镜像)

没问题,我来一步步给你说怎么操作,全程不用自定义镜像,直接用JBoss CLI就能搞定:

步骤1:把宿主机的WAR包复制到容器内部

首先得让JBoss容器能访问到你的WAR包,最简单的方式就是用docker cp命令把文件从宿主机复制到容器的临时目录里,比如:

docker cp /宿主机上的WAR包路径/your-app.war <容器名称或ID>:/tmp/

记得把<容器名称或ID>换成你实际的JBoss容器标识,你可以用docker ps命令查到这个信息。

步骤2:通过JBoss CLI部署WAR包

这里有两种常用的方式,选适合你的就行:

方式一:进入容器内部使用CLI

这种方式最直接,不需要额外配置端口:

  • 先进入容器的交互式shell:
docker exec -it <容器名称或ID> /bin/bash
  • 启动JBoss CLI并连接到本地服务器:
jboss-cli.sh --connect

(如果这个命令找不到,试试全路径:/opt/jboss/wildfly/bin/jboss-cli.sh --connect,不同JBoss版本路径可能略有差异,一般WildFly是这个路径)

  • 执行部署命令:
deploy /tmp/your-app.war
  • 如果想要给部署的应用指定自定义名称,可以加--name=your-app参数;
  • 如果之前已经部署过同名应用,需要覆盖的话,加上--force参数,比如:deploy /tmp/your-app.war --force

方式二:远程连接JBoss CLI(适合不想进入容器的情况)

如果你的JBoss容器启动时映射了管理端口(默认是9990),可以直接在宿主机上远程操作:

  • 确保容器运行时已经暴露了9990端口,比如启动容器的命令里有-p 9990:9990;如果之前没开,可能需要重启容器加上这个端口映射。
  • 先在容器里添加管理用户(JBoss默认没有启用无密码远程连接):
    进入容器shell后执行:
/opt/jboss/wildfly/bin/add-user.sh

按照提示创建一个管理员用户,记住用户名和密码。

  • 在宿主机上启动JBoss CLI并远程连接:
jboss-cli.sh --connect controller=localhost:9990 --user=你的管理员用户名 --password=对应的密码

(如果宿主机上没有JBoss CLI,直接用方式一操作更省事)

  • 同样执行部署命令:
deploy /tmp/your-app.war

(这里的路径是容器内部的路径,所以还是得先完成步骤1的docker cp操作)

验证部署

部署完成后,你可以在CLI里执行deployment-info命令,查看所有已部署的应用,确认你的WAR包已经成功部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:07:56