LINUX.ORG.RU
решено ФорумAdmin

Docker сетевое взаимодействие между контейнерами

 , ,


0

3

Долгое время пользуюсь https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion для всех своих сервисов И радости моей не было предела, и в кишки я не влезал, в общих чертах восхитился системой и пользовался. Пока не захотелось мне поднять у себя jupyter notebook который при прочих равных на отрез отказывался открываться из за nginx-proxy-companion с ошибкой 503. Стал копать, понял, что нет у меня достаточного понимания сетевого взаимодействия. Из nginx контейнера не могу курлом вытащить из контейнера юпитера.

Следуя инженерному подходу решил избавится от всего лишнего, вооружился netcat. И воспроизвёл поведение которое не укладывается у меня в голове как валидное. Что я делаю не так?

Шаг 1 Создал сетку внутри докера :

docker network create myownnetwork

Шаг 2 Запустил контейнер который слушает порт:

$ docker rm container1 ; docker run --name container1 --network myownnetwork ubuntu /bin/bash -c 'apt update && apt install -y netcat net-tools && ifconfig && nc -l -vvv 8080;'
...
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.2  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:02  txqueuelen 0  (Ethernet)
        RX packets 4149  bytes 17361595 (17.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3951  bytes 336864 (336.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 674 (674.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 674 (674.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

8080: inverse host lookup failed: Unknown host
listening on [any] 46581 ...

Шаг 3 Запустил контейнер который подключается к порту:

docker rm container2 ; docker run --name container2 --network myownnetwork ubuntu /bin/bash -c 'apt update && apt install -y netcat net-tools && ifconfig && nc 172.18.0.2 8080'
...
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.3  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:03  txqueuelen 0  (Ethernet)
        RX packets 3042  bytes 17288445 (17.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2742  bytes 203702 (203.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 674 (674.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 674 (674.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(UNKNOWN) [172.18.0.2] 8080 (?) : Connection refused

Почему эти 2 контейнера не могут друг с другом общаться? Вроде в одной сети, файрволов внитри докеровской убунты нет.

Потому что у тебя nc запустился на 46581 порту вместо 8080.

deadNightTiger ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.