将Docker Container连接到外部主机

时间:2018-04-03 10:12:04

标签: docker

我有一个带有docker的容器,它与外部主机(amqp:// WKSAXIPMI512:5672)创建一个JMS连接,这是我的localhost的名称。当在docker之外运行应用程序时,我在创建JMS连接时没有出错,当从docker运行时我得到了错误:

C:\repository\tk\src\middleware\ub2b\ub2b-proto>docker run -p 8080:8080 -h=%ComputerName% proto
2018-04-03 10:04:06,256 INFO  [net.axisdata.ub2b.core.configuration.ConfigurationModule]: Configured hibernate bundle
ERROR [2018-04-03 10:04:06,574] org.apache.qpid.jms.JmsConnection: Failed to connect to remote at: amqp://WKSAXIPMI512:5672
2018-04-03 10:04:06,582 ERROR [net.axisdata.ub2b.core.configuration.jms.JmsConfigurationHelper]: Error configuring jms connection
javax.jms.JMSException: syscall:getsockopt(..) failed: Connection refused: WKSAXIPMI512/172.17.0.3:5672
        at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:86)
        at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:108)
        at org.apache.qpid.jms.JmsConnection.connect(JmsConnection.java:168)

如何从docker容器连接到外部主机?

谢谢

1 个答案:

答案 0 :(得分:0)

错误在于使用-h =%ComputerName%运行容器,因为我的计算机名是WKSAXIPMI512。因此当我在容器内部时,我指向WKSAXIPMI512指向容器本身。

在没有-h =%ComputerName%的情况下运行时没有问题