我在linux机器上有一个glassfish服务器,还有一个运行jenkins的docker容器。我想执行一些glassfish命令,但从码头工人看来,glassfish尚未启动。我收到的消息是:
Remote server does not listen for requests on [localhost:4848]. Is the server up?
Glassfish在linux的端口8080和admin的4848上运行。我为jenkins运行docker的方式是:
docker run --rm -d --name jenkins \
--expose 4848 \
-v /opt/glassfish3:/opt/glassfish3 \
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker \
-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone \
-v $GF/libs:$JH/libs \
-p 8081:8080 -p 50000:50000 jenkins/jenkins:lts
尽管玻璃鱼飞起来了,詹金斯却看不到它。
有什么建议吗?
谢谢
答案 0 :(得分:1)
docker
默认情况下会创建bridged network,因此Glassfish和Jenkins位于不同的网段。
从收到的消息中,似乎该命令尝试连接到localhost
上的Glassfish。相反,您需要连接到Linux机器的IP
地址(我假设它是主机)。
在主机上运行ip
命令(或ifconfig
)以获取IP地址:
ip addr show docker0
({docker0
是docker
创建的以太网桥设备)
默认情况下,Glassfish侦听0.0.0.0(所有网络接口),因此它也应侦听docker0。然后使用asadmin
选项(运行域管理服务器的计算机名称)运行--host
。例如:
asadmin --host <ip of linux machine> list-applications
也可以使用默认网络接口代替docker0
。
或者,您可以在host mode中运行jenkins容器。在主机模式下,它与主机共享网络接口,因此它将能够连接到localhost
。
希望有帮助