[英]Execute an external service outside a docker container
我在linux機器中有一個glassfish服務器,還有一個運行jenkins的docker容器。 我想執行一些glassfish命令,但從碼頭工人看來,glassfish尚未啟動。 我收到的消息是:
Remote server does not listen for requests on [localhost:4848]. Is the server up?
Glassfish在Linux上的端口8080上運行,在4848上的admin上運行。我為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
盡管玻璃魚升起了,詹金斯卻沒有看到它。
有什么建議么?
謝謝
docker
默認情況下會創建一個橋接網絡,因此Glassfish和Jenkins位於不同的網段。
從收到的消息中,該命令似乎嘗試連接到localhost
上的Glassfish。 相反,您需要連接到Linux機器的IP
地址(我假設它是主機)。 在主機上運行ip
命令(或ifconfig
)以獲取IP地址:
ip addr show docker0
( docker0
是通過創建以太網橋設備docker
)
默認情況下,Glassfish偵聽0.0.0.0(所有網絡接口),因此它也應偵聽docker0。 然后使用--host
選項(運行域管理服務器的計算機名稱)以asadmin
--host
運行。 例如:
asadmin --host <ip of linux machine> list-applications
也可以使用默認網絡接口代替docker0
。
或者,您可以在主機模式下運行jenkins容器。 在主機模式下,它與主機共享網絡接口,因此它將能夠連接到localhost
。
希望能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.