我有一个带有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容器连接到外部主机?
谢谢
答案 0 :(得分:0)
错误在于使用-h =%ComputerName%运行容器,因为我的计算机名是WKSAXIPMI512。因此当我在容器内部时,我指向WKSAXIPMI512指向容器本身。
在没有-h =%ComputerName%的情况下运行时没有问题