簡體   English   中英

Docker群容器無法連接

[英]Docker swarm containers can't connect out

我有一個帶有三個節點的小型docker群。

$ sudo docker node ls
ID                            HOSTNAME                                     STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
jmsidw84mom3k9m4yoqc7rkj0     ip-172-31-a-x.region.compute.internal    Ready               Active                                  19.03.1
qg1njgopzgiainsbl2u9bmux4 *   ip-172-31-b-y.region.compute.internal   Ready               Active              Leader              19.03.1
yn9sj3sp5b3sr9a36zxpdt3uw     ip-172-31-c-z.region.compute.internal   Ready               Active                                  19.03.1

我正在運行三個redis容器。

$ sudo docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                      PORTS
6j9mmnpgk5j4        redis              replicated          3/3                 172.31.m.n:5000/redis

但是我無法讓redis哨兵在他們之間工作-閱讀日志似乎好像有連接失敗。

只是將它們作為三個獨立的Redis實例站起來,我一直在測試連通性,並且可以從任何主機上的外殼telnet到另一個節點的主機IP,並將其連接到容器上運行的服務。 如果我從容器上的外殼執行相同操作,則無法連接。

[centos@172.31.a.x ~]$ telnet 172.31.b.y 6379
Trying 172.31.b.y...
Connected to 172.31.b.y.
Escape character is '^]'.
^CConnection closed by foreign host.
[centos@172.31.a.x ~]$ sudo docker exec -it 4d5abad441b8 sh
/ # telnet 172.31.14.12 6379

然后掛起。 同樣,我無法從容器內通過telnet到443上的google.com,但可以在主機上。 奇怪的是,ping確實從容器中脫出了。

有什么建議么?

啊。

Redis方面是一個紅色鯡魚,我現在可以進行調試-我正在考慮默認情況下telnet不在容器(高山linux)上,因此必須具有一定的連通性,但是我無法telnet到Web服務器端口聲稱它是從安裝時下載的。

事實證明,telnet客戶端高山linux安裝的版本有問題-nmap和curl的行為符合預期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM