Ssh

在 docker-compose 中轉發埠,而無需使用指定的 -L 選項打開 SSH 連接

  • July 28, 2017

我一直在關注這個關於使用 Docker 容器開始使用 Kubernetes 的教程,這是這個官方教程的一個變體,修改為使用docker-compose.

我已經設法使用列出節點

kubectl get nodes

但只有在另一個視窗中打開到容器的 SSH 連接時,我才能做到這一點,使用打開

docker-machine ssh docker-vm -L 8080:localhost:8080

這很混亂,我希望能夠在 中處理這個docker-compose.yml,但我不知道如何

我嘗試在 iml 文件中使用portsandexpose選項,但它們不起作用。當我嘗試轉發/公開埠 8080 並使用上述kubectl命令獲取節點時,出現以下錯誤:

error: couldn't read version from server: Get http://localhost:8080/api: EOF

我使用了docker-compose.yml頂部第一個連結的連結,並進行了以下修改:

aipserver:
ports:
 - "8080:8080"
expose:
 - "8080"

我已經在 中指定的所有容器上進行了嘗試docker-compose.yml,但問題仍然存在。

如何使用docker-compose.yml轉發/公開容器上的埠,而無需使用-L指定的選項打開 SSH 連接。

API 伺服器在 127.0.0.1:8080 上的主機網路上公開

如果要在 docker-machine vm 上公開它,則需要將 –address 標誌更改為 –address=0.0.0.0:8080 而不是 –address=127.0.0.1:8080

這將在您機器上的虛擬機地址上公開它(例如 1.2.3.4)

如果您正確設置了虛擬機埠轉發,這也將使其在您機器上的 localhost:8080 可用。

引用自:https://serverfault.com/questions/735835