Невозможно подключиться к telnet из док-контейнера в эластичном бобовом стебле к другому ec2 на AWS
Я пытаюсь подключиться по телнету от экземпляра докера на Elastic Beanstalk к другому экземпляру EC2 в пределах того же VPC. Я создал группу безопасности, разрешающую входящий трафик от идентификатора группы безопасности Elastic Beanstalk к другому экземпляру EC2.
после ssh'ing в один из экземпляров Elastic Beanstalk я могу подтвердить, что могу подключиться к Telnet от экземпляра Elastic Beanstalk к другому экземпляру EC2.
Успешная:
[root@ip-111-11-11-111 ~]# telnet 222.22.22.22 9999
Trying 222.22.22.22...
Connected to 222.22.22.22.
Escape character is '^]'
Но когда я подключаюсь к контейнеру Docker в интерактивном режиме (через docker run -it) и пытаюсь выполнить ту же команду, указанную выше, соединение не устанавливается:
отказ:
[root@ip-111-11-11-111 ~]# sudo su -
[root@ip-111-11-11-111 ~]# docker exec -it my_instance /bin/sh
/path-of-user # telnet 222.22.22.22 9999
(hangs here, never connects)
Очевидно, что группа безопасности работает для экземпляра Elastic Beanstalk, но не для докера внутри экземпляра Elastic Beanstalk. Я не уверен, что правильные изменения в группе безопасности будут разрешать трафик от экземпляра докера внутри экземпляра Elastic Beanstalk к другому экземпляру EC2. Любая помощь будет принята с благодарностью!
0 ответов
Команда telnet внутри контейнера Docker оказалась ложноположительным из-за того, что соединение с внешним ip не работает. После дальнейшей отладки проблемы соединение фактически установилось, но, очевидно, дистрибутив Alpine, который я запускал в Docker Simple, ничего не выводил, хотя он действительно подключался. Я смог подтвердить соединение, когда заметил, что сообщения успешно проходят через мою внешнюю настройку Kafka.
На вашем месте я бы проверил настройки докера, например, если вы sudo docker ps
Вы видите, что на вашем докере правильно настроена переадресация портов? Вы должны иметь что-то вроде 0.0.0.0:80->80/tcp
,