Не удается подключиться из док-контейнера к другому.В соединении отказано - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь установить соединение между одним док-контейнером и другим с помощью telnet, однако я получаю сообщение об ошибке «telnet: невозможно подключиться к удаленному хосту: соединение отказано».

Команды I 'Мы выполнили до сих пор:

docker run -dit --name nA --net mynet -p 8081:80 -p 1001:443 test_image:1.0 bash

docker run -dit --name nB --net mynet -p 8080:80 -p 1000:443 test_image:1.0 bash

Это вывод из Docker Inspect Mynet

"Containers": {
        "1df3f3821710b3f8103fe79e338d709a93baf301dafc015bb5f1e162bca206de": {
            "Name": "nB",
            "EndpointID": "bf7cbc2e60ddb99cd3b8bd416b066787840ced6de74eb1961b4f9663a28fdd80",
            "MacAddress": "02:42:ac:13:00:03",
            "IPv4Address": "172.19.0.3/16",
            "IPv6Address": ""
        },
        "7aea617e121eda0884ae7ce46e1534800af2d30822f3899f69c4165a40c1370d": {
            "Name": "nA",
            "EndpointID": "7a60026517ff0b1b337a5af9ccf8d7dc9c896606196bcb1bafe537e6fddaa8dc",
            "MacAddress": "02:42:ac:13:00:02",
            "IPv4Address": "172.19.0.2/16",
            "IPv6Address": ""
        }
    },

Пинг работает отлично:

root@1df3f3821710:/# ping nA
PING nA (172.19.0.2) 56(84) bytes of data.
64 bytes from nA.mynet (172.19.0.2): icmp_seq=1 ttl=64 time=0.141 ms
64 bytes from nA.mynet (172.19.0.2): icmp_seq=2 ttl=64 time=0.261 ms

Затем я пытаюсь подключитьсяиз одного контейнера в другой, используя опубликованные порты.

root@1df3f3821710:/# telnet nA 8081
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 1001
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 80
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 443
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused

То же самое происходит при подключении из другого контейнера.

root@7aea617e121e:/# telnet nB 8080
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 80  
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 1000
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 443 
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused

В чем здесь проблема?

Версия Docker: 17.09.0 Операционные системы: Mac и Windows

1 Ответ

0 голосов
/ 18 декабря 2018
  1. Опубликованные порты доступны с хоста, они не используются для связи между контейнерами.

  2. Вы переопределяете любую команду, определенную для вашего образа, ивместо этого запускается bash, так что это единственный процесс, выполняющийся в вашем контейнере, а ваши приложения внутри контейнера вообще не запускаются.

Что вы хотели сделать, это следующее

docker run -d --name nA --net mynet -p 8081:80 -p 1001:443 test_image:1.0
docker run -d --name nB --net mynet -p 8080:80 -p 1000:443 test_image:1.0

Затем подключите к работающим контейнерам

$ docker exec -it nA bash

$ docker exec -it nB bash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...