Я пытаюсь (между другими службами композиции) подключить эти 2 по TCP:
autoserver:
image: 19mikel95/pymodmikel:autoserversynchub
container_name: autoserver
expose:
- 5020
restart: unless-stopped
networks:
- monitor-net
clientperf:
image: 19mikel95/pymodmikel:reloadcomp
container_name: clientperf
restart: unless-stopped
networks:
- monitor-net
depends_on:
- autoserver
Где monitor- net - мост:
version: '2.1'
networks:
monitor-net:
driver: bridge
Итак в файле python, выполняемом клиентом, я использую библиотеку pymodbus для запуска этого:
host = 'localhost'
client = ModbusTcpClient(host, port=5020)
Там, где у меня явно проблемы с этим «локальным хостом». Когда я запускал каждый контейнер вручную, я использовал docker run --network host
, но теперь, когда я вынужден использовать сетевой мост, я не знаю, что поставить вместо localhost. Я пробовал использовать «автосервер», «172.18.0.5», который представляет собой IP-адрес, предоставленный автосерверу сетью docker:
"57c6e2c366e81f59636a21b61e7935f68e6c700787b57eba572543e76f35f1ce": {
"Name": "autoserver",
"EndpointID": "56e586b875e6d2c17779e236b2448825910d330cc502dec96e2c3ec3771e5bf3",
"MacAddress": "02:42:ac:12:00:05",
"IPv4Address": "172.18.0.5/16",
"IPv6Address": ""
и другие комбинации, но я не знаю, как на самом деле сделать это соединение.
Если я попробую использовать «автосервер», как было предложено, он просто не сможет подключиться:
Файл «/ usr / lib / python3 / dist-packages / pymodbus / client / syn c .py ", строка 107, при выполнении raise ConnectionException (" Не удалось подключиться [% s] "% (self. str ())) pymodbus.exceptions.ConnectionException: Ошибка Modbus: [ Соединение] Не удалось подключиться [ModbusTcpClient (автосервер: 5020)] [ERROR / MainProcess] не удалось успешно запустить тест