Для того чтобы контейнеры Docker могли взаимодействовать друг с другом, вам необходимо установить их в одной сети. На вашем docker-compose.yml
добавьте следующее:
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672"
container_name: rabbitmq
hostname: my-rabbit
networks:
- my-network-name
Send:
image: sender
build:
context: ./Send
dockerfile: Dockerfile
depends_on:
- rabbitmq
networks:
- my-network-name
Reciever:
image: reciever
build:
context: ./Recieve
dockerfile: Dockerfile
depends_on:
- rabbitmq
networks:
- my-network-name
networks:
my-network-name:
driver: bridge
Как видите, все контейнеры находятся в одной сети, и они могут взаимодействовать следующим образом:
http://<container_name>:<port>
Итак, если вы хотите, чтобы Отправитель отправлял сообщение на RabbitMQ , тогда:
amqp://rabbitmq:5672
Если вы используете localhost
в качестве IP-адреса внутри любого контейнера, он будет использовать свой интерфейс обратной связи, получая сам запрос.