在docker容器外部执行外部服务
我在linux机器上有一个glassfish服务器和一个运行jenkins的docker容器。我想执行一些glassfish命令,但从docker看来glassfish还没有启动。我得到的信息是:在docker容器外部执行外部服务,docker,jenkins,glassfish,Docker,Jenkins,Glassfish,我在linux机器上有一个glassfish服务器和一个运行jenkins的docker容器。我想执行一些glassfish命令,但从docker看来glassfish还没有启动。我得到的信息是: Remote server does not listen for requests on [localhost:4848]. Is the server up? Glassfish在linux中运行,端口为8080,管理端口为4848。我为詹金斯管理docker的方式是: docker run -
Remote server does not listen for requests on [localhost:4848]. Is the server up?
Glassfish在linux中运行,端口为8080,管理端口为4848。我为詹金斯管理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
虽然glassfish在上升,但jenkins没有看到
有什么建议吗
谢谢
docker
默认情况下创建了一个网络,因此Glassfish和Jenkins位于不同的网段上
从您收到的消息来看,该命令似乎试图连接到localhost
上的Glassfish。相反,您需要连接到linux机器的IP
地址(我假设它是主机)。
在主机上运行ip
命令(或ifconfig
)以获取ip地址:
ip addr show docker0
(docker0
是由docker
创建的以太网网桥设备)
默认情况下,Glassfish侦听0.0.0.0(所有网络接口),因此它也应该侦听docker0。然后使用--host
选项(运行域管理服务器的计算机名)运行asadmin
。例如:
asadmin --host <ip of linux machine> list-applications
asadmin——主机列表应用程序
也可以使用默认网络接口代替docker0
或者,您可以在中运行jenkins容器。在主机模式下,它与主机共享网络接口,以便能够连接到localhost
希望这有帮助您能将glassfish服务器放入另一个容器中吗?可能是的……但我必须从一开始就安装它。目前这就是它的工作原理。我想如果我把它放到另一个容器里,由于docker.sock,我将能够处理它。。。