第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復(fù)在 docker 容器中調(diào)用公共地址時撥號 tcp i/o 超時?

如何修復(fù)在 docker 容器中調(diào)用公共地址時撥號 tcp i/o 超時?

Go
RISEBY 2023-07-17 14:59:32
我正在設(shè)置一個新的容器“A”,它從容器“B”調(diào)用一些端點(diǎn)。為什么這些調(diào)用總是返回dial tcp 116.2.153.48:8082: i/o timeout?來自容器“A”的調(diào)用正在使用公共 IP。所有容器都部署在CentOS 7上。每個容器都有自己的網(wǎng)絡(luò),并在該網(wǎng)絡(luò)中擁有自己的數(shù)據(jù)庫。此外,返回錯誤的調(diào)用可以從任何 REST-API 客戶端(例如 Postman)正常工作。resolv.conf 文件中的名稱服務(wù)器已更改為 google 的 8.8.8.8 和 8.8.4.4錯誤:error="Post http://116.2.153.48:8082/new_user?email=eto@email.com: dial tcp 116.203.153.48:8082: i/o timeout"從程序中調(diào)用:req, err := http.NewRequest(http.MethodPost, fmt.Sprintf("http://116.2.153.48:8082/new_user?email=%s", user.Email), nil)    if err != nil {        return err    }    httpClient := &http.Client{}    resp, err := httpClient.Do(req)    if err != nil {        return err    }更新:第一個容器的 Docker-compose:  payment-ms:    container_name: payment-ms    build:      context: .      dockerfile: Dockerfile    environment:      - DB_HOST=payment-ms-db    ports:      - 8082:8082第二個容器的 Docker-compose 文件:user-ms:    container_name: user-ms    build:      context: .      dockerfile: Dockerfile    environment:       - DB_HOST=user-ms-db    ports:       - 8080:8080    depends_on:      user-ms-db:        condition: service_healthy另外,在我的 MacOS 本地計算機(jī)上一切正常,問題僅在 CentOS7 的 VPS 上重現(xiàn)。
查看完整描述

1 回答

?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個贊

該問題是由 2 個問題引發(fā)的。首先,容器必須位于同一網(wǎng)絡(luò)中。第二個,當(dāng)容器在同一個網(wǎng)絡(luò)中時,相互調(diào)用必須使用屬性容器名稱host。例如:


$ docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS                              NAMES

9c6c31b8ec21        user-ms             "./user-ms run"          3 minutes ago       Up 3 minutes             8080/tcp, 0.0.0.0:9980->9980/tcp   user-ms

13863218f942        finance-ms          "./finance-ms run"       3 minutes ago       Up 3 minutes             0.0.0.0:9982->9982/tcp             finance-ms

這意味著,curl 和來自容器的所有其他調(diào)用user-ms必須finance-ms帶有finance-ms:9982地址。


查看完整回答
反對 回復(fù) 2023-07-17
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號