我正在MacO的docker容器中运行Java-App。
此Java-App一方面具有Web服务器,另一方面具有数据库访问权限。
我正在运行的容器仅包含带有正在运行的Jar的Java。
数据库在容器外部。
在主机上,我可以访问数据库127.0.0.1:5400。
通过我到目前为止尝试的设置,我无法访问docker中的Web服务器。
我也不知道我可以访问哪个地址。
我通过以下方式运行docker:
docker run --rm --net=host -v `pwd`/:/mnt -v `pwd`/logs:/logs airdock/oracle-jdk:jdk-8u112 java -jar /mnt/MyJava.jar /mnt/application-localdocker.properties
它被配置为侦听端口80。日志指出它可以正常启动并且可以侦听。以及数据库已连接。
由于我使用了--net=host
用户,因此我被回答说,使用-p 9090:80
没有意义,因此不适用。所有端口均已完全传递到主机系统。那是有道理的。
尽管如此,在正确启动Docker容器后,我无法访问127.0.0.1:80
,也看不到原因。
我想要的是同时在我的docker容器中有一个侦听端口(在docker-inside外部)和一个访问端口(在docker-inside到外部),而没有更大的模糊感。但这似乎并不容易。
讨论相同的内容:https://forums.docker.com/t/accessing-host-and-exposing-port-same-time-possible-or-not/23914