簡體   English   中英

無法配置Docker主機的遠程訪問

[英]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.

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