主机无法访问容器映射的端口:Connection reset by peer

主机无法访问容器映射的端口:Connection reset by peer

今天碰到一个坑,很低级,先记在这里吧。

背景是这样的

我启动一个etcd容器,里面发布了一个服务监听在端口2379,然后我把端口映射到主机了。

version: '2'
networks:
  byfn:

services:
  etcd1:
    image: quay.io/coreos/etcd
    container_name: etcd1
    command: etcd -name etcd1 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster \
                  -initial-cluster "etcd1=http://etcd1:2380" -initial-cluster-state new
    ports:
      - 2379
      - 2380
    networks:
      - byfn

然后通过docker ps也能看到端口的映射:

$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
60877d965c67        quay.io/coreos/etcd   "etcd -name etcd1 ..."   15 minutes ago      Up 15 minutes       0.0.0.0:32769->2379/tcp, 0.0.0.0:32768->2380/tcp   etcd1

容器内的端口2379被映射到了主机的端口32769。

这个问题是什么

如果我从主机上访问端口32769,会失败:

$ curl -L http://localhost:32769/v2/members
curl: (56) Recv failure: Connection reset by peer

然后我从容器内访问端口2377,是成功的:

$ docker exec -t etcd1 curl -L http://localhost:2379/v2/members
{"members":[{"id":"ade526d28b1f92f7","name":"etcd1","peerURLs":["http://etcd1:2380"],"clientURLs":["http://127.0.0.1:2379"]}]}

这个怎么回事呢

一开始我只关注了端口的映射,好像都是正常的,而且容器内也是可以访问的,说明容器内端口是在运行的呢。

原因是什么

其实端口并没有在监听,我们进到容器内部,执行netstat命令看到:

$ docker exec -t etcd1 netstat -an | grep LISTEN | grep 2379
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      

这就明白了,端口2379只监听在127.0.0.1这个地址上,这个地址是没有映射到主机的,我们需要让容器内把端口2379也映射到eth0这个地址上,就能访问了。

解决办法

在docker-compose.yaml修改etcd的监听地址到0.0.0.0,而不是缺省的127.0.0.1

command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 \
                          -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster \
                          -initial-cluster "etcd1=http://etcd1:2380" -initial-cluster-state new

再验证监听端口:

$ docker exec -t etcd1 netstat -an | grep LISTEN | grep 2379
tcp        0      0 :::2379                 :::*                    LISTEN      

在去访问主机端口:

$ curl -L http://localhost:32769/v2/members | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   347  100   347    0     0   9735      0 --:--:-- --:--:-- --:--:--  9914
{
    "members": [
        {
            "clientURLs": [
                "http://0.0.0.0:2379"
            ],
            "id": "ade526d28b1f92f7",
            "name": "etcd1",
            "peerURLs": [
                "http://etcd1:2380"
            ]
        }
    ]
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容