Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在docker容器外部执行外部服务_Docker_Jenkins_Glassfish - Fatal编程技术网

在docker容器外部执行外部服务

在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 -

我在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 --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,我将能够处理它。。。