我的最终目标是让运行不同进程的多个 Python 容器通过 ActiveMQ Artemis 容器相互通信。我对这一切都很陌生,所以作为开始,我只是想运行一个概念验证。
我按照这个 youtube 视频中的说明建立了我的阿尔忒弥斯形象,一切都很好。我还按照本教程开始通过 stomp 向 Artemis 发送消息。当我在 Artemis 容器启动并运行时在本地(从 PyCharm)运行此脚本时,我可以在 Web 控制台中看到从 python 脚本生成的新队列。但是,当我将相同的 Python 脚本容器化时,出现错误
Could not connect to host localhost, port 61613
Could not connect to host localhost, port 61613
Could not connect to host localhost, port 61613
Traceback (most recent call last):
File "/code/./main.py", line 5, in <module>
import sendAMessage
File "/code/sendAMessage.py", line 30, in <module>
conn.connect('admin', 'admin', wait=True)
File "/usr/local/lib/python3.9/site-packages/stomp/connect.py", line 164, in connect
self.transport.start()
File "/usr/local/lib/python3.9/site-packages/stomp/transport.py", line 109, in start
self.attempt_connection()
File "/usr/local/lib/python3.9/site-packages/stomp/transport.py", line 819, in attempt_connection
raise exception.ConnectFailedException()
我尝试在 docker 中建立一个网络并将两个容器都放在上面。我正在运行我的python容器
docker run --rm --net my-network -p 5000:5000 myimage
我有一种感觉,我错误地暴露了一个端口,或者类似的愚蠢的东西,但我对容器不太熟悉,不知道从哪里开始寻找。