Я не очень разбираюсь в сетевых технологиях докера, где у меня есть 2 разных контейнера, в то время как они размещены на двух разных машинах. В этом сценарии у меня есть два Raspberry Pi , где один сервер , а другой клиент .
Оба используют протокол CoAP для обмена сообщениями. В любом случае, клиент требует ip сервера в качестве параметра для клиентского скрипта, например -
python src/client.py <server_ip>
Я проверяю контейнер сервера и получаю приватный ip как -
172.18.0.2
Вот файлы для создания docker-сервера и клиента -
docker-compose.yml (сервер)
version: '3'
services:
server:
build: ./
image: img_server:v1
ports:
- 5683:5683/udp
volumes:
- ./:/usr/app
command: ["python", "src/server.py"]
docker-compose.yml (клиент)
version: '3'
services:
client:
build: ./
image: img_client:v1
environment:
SERVER_IP: "127.0.0.1"
ports:
- 61616:61616/udp
volumes:
- ./:/usr/app
command: ["sh", "-c", "python src/client.py $SERVER_IP"]
Я не могу установить соединение, так как контейнеры (сервер и клиент) работают на разных машинах.
Вопрос: Можно ли установить соединение между сервером и клиентом, если оба они размещены в отдельном демоне Docker (на отдельной машине)? Если так, то как я могу это сделать?