我想停靠一个较旧的jboss服务器(7.0.0)。
第一个
在日志中,我可以看到jboss已成功启动,并且正在侦听端口:
INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
...
INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
当使用http://localhost:8080/
检查浏览器时,我得到了一个ERR_EMPTY_RESPONSE
。我错过了什么?
2条答案
按热度按时间eni9jsuy1#
您需要检查应用程序未绑定到www.example.com的原因0.0.0.0,绑定到www.example.com时,应用程序仅接受容器内的连接127.0.0.1:
...正在降低HTTP侦听器默认值,正在侦听127.0.0.1:8080 ...正在侦听http://127.0.0.1:9990/management ...正在侦听http://127.0.0.1:9990
wh6knrhe2#
有两种形式的Dockerfile
ENTRYPOINT
和CMD
指令(还有RUN
)。数组中的每一项实际上都是作为一个带引号的shell字来处理的。2指定一个不带JSON语法的命令可能会更容易,在这种情况下,Docker将启动一个shell来为您处理命令行。由于问题中的表单只有一个JSON单词,Docker会尝试将整个单词解释为要运行的命令,包括作为文件名一部分的空格和连字符,并且不带任何选项。我希望容器根本不会启动,并给出“no such file or directory”错误。您需要手动将命令拆分为单独的单词,或者使用shell表单:
如果您使用JSON数组形式,您可以在
docker run
选项中的影像名称之后指定其他选项,或指定为Composecommand:
。如果您使用shell形式,则会完全忽略命令部分。(对于是否将其设置为容器
ENTRYPOINT
或CMD
,有一个样式选择。我倾向于使用CMD
,因为它更容易执行诸如在映像上启动调试shell之类的操作,并且存在一种常见的模式,即使用ENTRYPOINT
作为 Package 器来进行一些首次设置,然后运行CMD
。我在评论中建议改为CMD
,但这对这个答案来说并不重要。)