私は多くの検索をしましたが、この問題を解決することはできません。別のコンテナでサービスからrabbitmqドッカーコンテナに接続する
私は、このコマンドで実行されている基本的なRabbitMQのコンテナを持っています。
docker run -d --hostname rabbitmqhost --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management
私はこのコンテナに接続microserviceを作成するために、nameko
を使用しています。 (
nameko run main --broker amqp://guest:[email protected]
私はドッカー容器にサービスを置くことを望んでいた:このサービスの実行は
from nameko.rpc import rpc
class Service_Name(object):
name = "service_name"
@rpc
def service_endpoint(self, arg=None):
logging.info('service_one endpoint, arg = %s', arg)
とコマンドを使用して、私のホストマシンからのRabbitMQに接続します。ここでは基本的なmicroserviceモジュールmain.py
ですservice_one
と呼ばれています)。しかし、これを実行して以前のnamekoコマンドを実行すると、2つのコンテナをどのように試してリンクしても、私はsocket.error: [Errno 111] ECONNREFUSED
になります。
正しい方法は何ですか?目的は、各サービスを容器に入れて、すべてウサギを介して互いに話すことです。ありがとう。
「どのように2つのコンテナをリンクしようとしても...」あなたは何を試しましたか? – larsks
私はリンクとネットワークを試してみましたが、それぞれの方法では、ampq接続の値が多少間違っていました。 (私はAMQ_PORT_5672_TCP_ADDRなどではなくlocalhostを使用していました)。 – steve