部署于Docker容器的Wildfly应用从宿主机无法访问问题求助
核心故障原因
- Wildfly 默认启动仅绑定容器本地回环地址
127.0.0.1,即便配置了端口映射,宿主机的请求也无法被服务接收 - 你的Dockerfile配置存在两处疏漏:
EXPOSE 8443声明放在了builder构建阶段,未作用于实际运行服务的Final镜像阶段- 启动命令未添加网卡绑定参数,未允许外部地址访问Wildfly服务
- 也有可能你在宿主机访问时遗漏了应用上下文根:你部署的war包名为
Authentication.war,默认访问路径需要加上/Authentication前缀,直接访问8443根路径会返回404错误
修复步骤
- 调整Dockerfile配置,将EXPOSE声明移到Final阶段,同时修改ENTRYPOINT添加网卡绑定参数,调整后对应片段如下:
#Create the deployment FROM jboss/wildfly:21.0.2.Final as Final EXPOSE 8443 #Copy the artifact to the deployments folder COPY --from=builder /build/target/Authentication.war /opt/jboss/wildfly/standalone/deployments/Authentication.war #Copy the standalone configuration into wildfly COPY --from=builder /WildflyConfiguration/standalone.xml /opt/jboss/wildfly/standalone/configuration/standalone.xml ENTRYPOINT ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
- 重新构建镜像,用原有启动命令启动容器即可
- 宿主机访问时使用完整路径:
https://localhost:8443/Authentication
内容的提问来源于stack exchange,提问作者user95488
相关产品推荐
相关产品推荐

