宿主主機如何訪問虛擬機中的docker服務
網上的回答不一而足,然而都沒有解決,最后上了Stack Overflow,找到了答案,國內的小伙伴還得加油呀.
環境
- 宿主機系統 : window 8,
- 虛擬機軟件: Oracle VirtualBox (CentOS7)
- docker version: 19.03.7
問題描述
- 虛擬機內部
systemctl start docker
啟動docker , docker run -d -p 80:80 nginx
啟動nginx 服務,- 虛擬機ip 192.168.56.200 ,docker 服務ip 172.17.0.16
- 宿主機瀏覽器
localhost:81
無法訪問nginx .
解決方法:
- 打開virtualbox
- 選擇docker服務所在的虛擬機
- 點擊設置 -> 網絡
- 選擇 NAT 網卡
- 點擊高級 -> 端口轉發
6 添加規則 : tcp 協議 ,主機和子系統端口設置,如 host:80 guest:80
- 瀏覽器訪問 localhost:80 ,可以查看到nginx 界面
原文:
1. Open Oracle VM VirtualBox Manager
2. Select the VM used by Docker
3. Click Settings -> Network
4. Adapter 1 should (default?) be "Attached to: NAT"
5. Click Advanced -> Port Forwarding
6. Add rule: Protocol TCP, Host Port 8080, Guest Port 8080 (leave Host IP and Guest IP empty)
7. Guest is your docker container and Host is your machine
You should now be able to browse to your container via localhost:8080 and your-internal-ip:8080.
參考:https://stackoverflow.com/questions/33814696/how-to-connect-to-a-docker-container-from-outside-the-host-same-network-windo