docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]
小編典典
TL; DR 檢查VirtualBox主機的網絡模式-是否應該bridged在本地網絡上訪問虛擬機(及其托管的Docker容器)。
聽起來您的困惑在于連接到哪個主機以便通過HTTP訪問您的應用程序。您還沒有真正弄清楚您的配置是什么-我將基于您的標記中包含“ Windows”和“
VirtualBox”的事實做出一些猜測。
我猜您在Windows主機上的VirtualBox中運行的某種Linux上運行了Docker。我將如下標記IP地址:
D = Docker容器的IP地址
L =在VirtualBox中運行的Linux主機的IP地址
W = Windows主機的IP地址
在Windows主機上運行Go應用程序時,可以http://W:8080/從本地網絡上的任何位置連接到該應用程序。之所以可行,是因為Go應用程序綁定了Windows計算機上的端口8080,并且任何嘗試訪問IP地址上的端口8080的人都W將建立連接。
這就是它變得更加復雜的地方:
VirtualBox設置虛擬機(VM)時,可以以幾種不同模式之一配置網絡。我不記得所有不同的選項是什么,但是您想要的是bridged。在這種模式下,VirtualBox會將虛擬機連接到本地網絡,就像虛擬機是網絡上的獨立計算機一樣,就像插入網絡中的任何其他計算機一樣。在bridged模式下,虛擬機會像其他任何計算機一樣出現在您的網絡上。其他模式設置的方式有所不同,并且計算機將在您的網絡上不可見。
因此,假設您為Linux主機(bridged)正確設置了網絡連接,則Linux主機將在您的本地網絡上具有IP地址(如192.168.0.x之類),并且您可以在處訪問Docker容器http://L:8080/。
如果將Linux主機設置為以外的其他模式bridged,則 可以 從Windows主機進行訪問,但這將取決于它所處的模式。
編輯 -根據以下評論,聽起來很像我上面描述的情況是正確的。
讓我們備份一點:這是Docker在我的計算機(Ubuntu Linux)上的工作方式。
Imagine I run the same command you have: docker run -p 8080:8080 dockertest.
What this does is start a new container based on the dockertest image and
forward (connect) port 8080 on the Linux host (my PC) to port 8080 on the
container. Docker sets up it’s own internal networking (with its own set of IP
addresses) to allow the Docker daemon to communicate and to allow containers
to communicate with one another. So basically what you’re doing with that -p
8080:8080 is connecting Docker’s internal networking with the “external”
network - ie. the host’s network adapter - on a particular port.
到目前為止和我在一起?好的,現在讓我們退后一步,看看您的系統。您的計算機正在運行Windows-
Docker(當前)不在Windows上運行,因此您使用的工具已在VirtualBox虛擬機中設置了Linux主機。當你做docker
run你的環境,同樣的事情發生了-
8080端口在Linux主機上連接到端口8080的容器上。這里最大的區別是您的Windows主機不是運行容器的Linux主機,因此這里有另一層,并且跨該層的通信會遇到問題。
您需要做的是以下兩件事之一:
將VirtualBox VM上的端口8080連接到Windows主機上的端口8080,就像將Docker容器連接到主機端口一樣。
使用上述bridged網絡模式將VirtualBox VM直接連接到本地網絡。
如果您選擇第一個選項,則可以訪問Windows主機的IP地址或主機名http://W:8080所在的容器W。如果選擇第二個,則可以訪問Linux
VM的IP地址或主機名http://L:8080所在的容器L。
這就是所有更高層次的說明-現在您需要弄清楚如何更改VirtualBox VM的配置。這是我無法真正為您提供幫助的地方-
我不知道您在Windows機器上使用什么工具來完成所有這些工作,而且我對在Windows上使用Docker一點都不熟悉。
如果可以進入VirtualBox配置窗口,則可以進行以下描述的更改。還有一個命令行客戶端將修改VM,但是我對此并不熟悉。
對于bridged模式(這確實是最簡單的選擇),請關閉您的VM,單擊頂部的“設置”按鈕bridged,然后將網絡模式更改為,然后重新啟動VM,您就可以了。VM應該通過DHCP在本地網絡上選擇一個IP地址,并且對于該IP地址在網絡上的其他計算機應該是可見的。
2020-06-17
總結
以上是生活随笔為你收集整理的docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神舟笔记本怎么用u盘怎么进入系统 神舟笔
- 下一篇: 惠普星15怎么进bios 惠普笔记本如何