Невозможно прослушать службу, запущенную внутри контейнера Docker, из удаленного контейнера Docker - PullRequest
1 голос
/ 24 мая 2019

У меня есть две машины: машина-A и машина-B. Оба находятся в разных сетях. Я создаю Docker-контейнер на компьютере A с помощью docker-compose.yml и запускаю в нем процесс litecoind на порт 12345. Я перенаправил порт 12345 на порт 80 хост-компьютера-A.

version: '3'
services:
  node1:
    build: .
    cap_add:
      - ALL
    command: litecoind -regtest -server -rpcuser=rpc -rpcpassword=x -rpcport=10340  --datadir=/root/litecoind-simnet/ -port=12345
    networks:
      vpcbr:
        ipv4_address: 10.9.0.11
    ports:
      - 80:12345
networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.9.0.0/16

Теперь на компьютере-B я могу напрямую подключиться к вышеуказанному процессу с опцией -addnode litecoin и увидеть синхронизацию блокчейнов.

Проблема возникает, когда я создаю контейнер на компьютере-B и пытаюсь подключиться к тому же процессу, указанному выше, с помощью -addnode, используя файл docker-compose.yml на компьютере-B. В этом случае процесс litecoind остается невидимым, а блокчейны не синхронизируются.

version: '3'
services:
  node1:
    build: .
    cap_add:
      - ALL
    command: litecoind -regtest -addnode=<x.x.x.x:80> -rpcuser=rpc -rpcpassword=x -rpcport=10340  --datadir=/root/litecoind-simnet/ -port=12345
    networks:
      vpcbr:
        ipv4_address: 10.8.0.11
    ports:
      - 90:12345
networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.8.0.0/16

Я хочу, чтобы два вышеупомянутых отдельных контейнера на двух удаленных компьютерах связывались друг с другом. Что мне не хватает? Помогите, пожалуйста. Спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Возможные решения:

  1. Используйте один файл docker-compose для развертывания обоих контейнеров на одном узле.

  2. Если вам необходимо полностью развернуть контейнеры на двух разных узлах, вам нужно создать кластер swarm , если вы используете compose.

  3. Если вы хотите создать два разных файла композиции на одном и том же узле, это ответ здесь

...