簡體   English   中英

在Docker容器外執行外部服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM