社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

无法访问部署在Docker容器中的WebApp

Flo • 4 年前 • 467 次点击  

我目前正在进入Docker(或尝试),所以我建立了一个小的网络应用程序。 我使用eclipse创建了一个maven项目,构建了一个.war文件并在glassfish服务器上本地部署(检查它是否工作)。 这很有效,我可以通过

localhost:8080/myApp

现在我创建了一个dockerfile,从中构建了一个docker映像,并通过

docker run -d -p 8080:8080 myApp

这同样有效,而且

docker ps -a

显示容器正在运行。 但是,当我现在尝试访问localhost:8080/myapp时,我得到

错误连接被拒绝

我在chrome、firefox和internet explorer上试过。

docker exec -it <myContainer> bash

给我一个容器里面的外壳(如预期的那样)。当我这样做的时候

curl -v localhost:8080/myApp

在这里,我得到了我期望的输出(来自myapp的页面)。

因此,对我来说,这意味着容器正在运行,glassfish服务器正在容器内运行,myapp已经“正确”部署到所述服务器,但我仍然无法从容器外访问myapp。

码头工人PS-A

产生这个,顺便说一句:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                       NAMES
9514b1ab6dd0        myApp              "sh /start.sh"      9 minutes ago       Up 9 minutes        4848/tcp, 8181/tcp, 0.0.0.0:8080->8080/tcp   admiring_cori

Dockerfile当然包含了

EXPOSE 8080

你知道这里有什么问题吗?

编辑:

以下是dockerfile的内容:

FROM glassfish:4.0

COPY myApp.war /
COPY start.sh /


EXPOSE 8080

RUN ["chmod", "+x", "/start.sh"]

ENTRYPOINT ["sh", "/start.sh"]

开始.sh:

#!/bin/sh

/usr/local/glassfish4/bin/asadmin start-domain
/usr/local/glassfish4/bin/asadmin -u admin deploy /myApp.war
/usr/local/glassfish4/bin/asadmin stop-domain
/usr/local/glassfish4/bin/asadmin start-domain --verbose

编辑2:

docker logs <container>

产量

Waiting for domain1 to start ...............
Successfully started the domain : domain1
domain  Location: /usr/local/glassfish4/glassfish/domains/domain1
Log File: /usr/local/glassfish4/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
Application deployed with name myApp.
Command deploy executed successfully.
Waiting for the domain to stop .
Command stop-domain executed successfully.
Launching GlassFish on Felix platform
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime@2ba2f40 in service registry.
Registry Info:: Total repositories: 1, Total modules = 293
Attached repository: []

[... Registered Modules... all with State = [NEW] or [RESOLVED]]

Found populator: com.sun.enterprise.v3.server.GFDomainXml

#!## LogManagerService.postConstruct : rootFolder=/usr/local/glassfish4/glassfish
#!## LogManagerService.postConstruct : templateDir=/usr/local/glassfish4/glassfish/lib/templates
#!## LogManagerService.postConstruct : src=/usr/local/glassfish4/glassfish/lib/templates/logging.properties
#!## LogManagerService.postConstruct : dest=/usr/local/glassfish4/glassfish/domains/domain1/config/logging.properties
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46778
 
467 次点击