Docker Создать клиент / сервер в мосте - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь (между другими службами композиции) подключить эти 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] не удалось успешно запустить тест

...