[英]Can't Configure Remote Access of Docker Host
我在兩台Windows機器(Windows 10和Windows 7 x64 SP1)上成功安裝了Docker for Windows 。 我可以通過終端服務(RDP)或通過Powershell遠程處理成功執行docker主機的管理職責。
但是,Docker文檔表明Docker主機提供了自己的RESTful 遠程api進行管理。 我想使用這個API。 問題是在文檔中給出的所有示例中,客戶端調用(通過curl
)與Docker主機在物理上位於同一個框中。 換句話說,它們實際上並不是遠程的 ,不幸的是,適應遠程場景的步驟並不明顯。
例如,請直接從文檔中考慮此命令:
curl --insecure --cert~ / .docker / cert.pem --key~ / .docker / key.pem https:// YOUR_VM_IP:2376 / images / json
顯然我需要YOUR_VM_IP
才能繼續。 所以在我的兩個Windows機器上,我輸入了docker-machine ls
。 我發現,在物理Windows機器無論是地址泊塢主機是tcp://192.168.99.100:2376
。
哎呀。 它們不能都具有相同的IP地址。 顯然,VirtualBox NAT地址在兩種情況下都是VM本地的。
這是主要問題。 我想知道如何公開外部可見的Docker主機IP地址,以便我可以實際執行遠程管理。
可能這個問題不是關於Docker而是關於VirtualBox的。 Docker Host VM可以配置多種網絡接口和網絡模式(例如NAT,網橋,內部,僅主機。也許某種組合可以允許公開Docking Host VM的IP。
或不? 另一種可能性是,我只是誤解了“遠程API”對Docker的意義。 也許“遠程”只是意味着我不需要從主機直接SSH到Docker主機,以便執行管理。 但是,我不認為我是誤會 - 特別是當我看到這樣的引號時:
默認情況下,守護程序只能接受Unix域套接字上的本地連接。 取自: Docker Machine Basics
是的,我當然發現“默認情況下”它確實是本地的。 現在我只需要知道如何使它成為非本地的,這樣我就可以提供遠程管理。 我在任何地方都找不到任何文檔。
有任何想法嗎?
我在任何地方都找不到任何文檔。
好吧,這可能是因為“windows上的docker”只是一個只用於單個盒子上本地開發的黑客。
在生產中運行Docker的每個人(即需要多個盒子的人)都只是在Linux上直接運行Docker而沒有額外的VM。 所有編排技術(Kubernetes等)都假設Docker服務器具有可路由的IP地址。
可能這個問題不是關於Docker而是關於VirtualBox的。
正確。 您可以通過將VM的端口2376暴露給您的網絡來“修復”您的問題。 您可能還必須在Windows防火牆中允許該端口。
更新 :如果您使用的是Windows Server 2016,可以嘗試使用此處的幫助啟用遠程
希望Microsoft Docker.Dotnet上的問題109的細節有所幫助
從以上鏈接中提取如下
Docker for Windows使用命名管道npipe:////./pipe/docker_engine
來訪問REST API。 您必須將管道映射到tcp端口。
這可以通過socat完成:
socat TCP-LISTEN:2375,reuseaddr,fork PIPE:\\\\.\\pipes\\docker_engine
運行socat地圖后,您可以使用連接
tcp://localhost:2375
在這個問題上更多的信息在這里 。
如果有幫助,請告訴我
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.