我知道有很多類似的問題,但沒有一個對我有用!
我在 Ubuntu 22.04.1 LTS 上運行 docker。我要做的就是訪問我localhost:9208通過 SSH-Tunnel 映射到埠的 Elasticsearch-Instance,而無需將 docker 容器網路模式切換為host.
這是我的最小docker-compose.yml示例:
version: '3'
services:
curl_test:
image: curlimages/curl
command: "curl http://localhost:9208"
輸出:
curl: (7) Failed to connect to localhost port 9208 after 0 ms: Connection refused
我試過了:
- 使用解決方法
"host.docker.internal:host-gateway" - 指定
extra_hosts - 將 9208 埠直接映射到容器中
我知道這個最小的例子不起作用。但是建議的所有修復/更改都不起作用。所以我很高興為這個問題提出任何建議。
uj5u.com熱心網友回復:
終于修好了!
解決方案包含兩部分:
1. 讓 docker 容器可以訪問主機 localhost
它所需要的只是
extra_hosts:
- "host.docker.internal:host-gateway"
2. 更重要的是:SSH-Tunnel 本身并不是一個普通的本地主機!
@felix-k 在這篇文章中的回答讓我意識到我必須將遠程埠映射到 dockers docker0 介面。它所需要的只是一個額外的隧道:
ssh -N -L 172.17.0.1:9214:localhost:9200 user@remotehost
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513916.html
