簡體   English   中英

無法訪問映射的端口(無法從主機連接到在Docker容器中運行的sshd)

[英]Can't access mapped port (can't connect from host to sshd running inside docker container)

重現步驟:

  • 主持人:docker run -t -i -p 22:1200 myimage / bin / bash
  • 來賓:bash#服務sshd啟動
  • 主機:docker ps -l
  • 主機:docker inspect -f'{{.NetworkSettings.IPAddress}}'container_id
  • 主機:ssh -p 1200 root @ container_ip_from_previous_command

  • 結果:無法訪問映射的端口(無法連接到在Docker容器中運行的sshd)

我的主機正在運行Ubuntu 14.04 64位。 Docker版本1.1.2,內部版本d84a070我可以從docker容器內部連接到在本地主機端口22上運行的sshd。我也嘗試禁用ufw(已啟用轉發),結果相同。

如我的評論中所述, docker run上的-p開關只會將端口路由到Docker接口之外。 例如,您將有兩個接口docker0eth0 ,可以將端口1200從eth0路由到docker0上的端口22。

如果要在專用接口docker0上進行連接,則無需路由外部端口,而只需在端口22上進行連接即可(對於docker inspect附帶的IP)。

最后,您的端口順序錯誤(假設SSH在容器的端口22上)。 您應該使用-p external:internal ,其中external是要公開給World的端口,而internal是容器internal的相關端口。

暫無
暫無

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

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