![](/img/trans.png)
[英]Is docker for windows running linux container in virtualbox?
[英]IP of Docker Container - Virtualbox + Windows
在 Windows 機器上,我可以使用哪個 IP 地址作為在 Virtual Box 上的 VM 中運行的 Docker 容器的 IP?
我有:
在 VM 上,我可以運行 docker 命令並查看容器正在運行
vagrant@ubuntu-xenial:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7a41b3edecd nrel/api-umbrella "api-umbrella run" 17 minutes ago Up 17 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp api-umbrella
vagrant@ubuntu-xenial:~$
該容器的IP是:
vagrant@ubuntu-xenial:~$ docker inspect e7a41b3edecd | grep "IPAddress"
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
vagrant@ubuntu-xenial:~$
我可以在 VM 本身上 ping IP 172.17.0.2 並 curl http://172.17.0.2 。 但是在 Windows 機器上嘗試http://172.17.0.2時我沒有響應。
問題- 我從 Windows 機器使用什么 IP 來獲取在 VM 上運行的 Docker 容器?
如果您使用 Windows 和 Ubuntu VM,並且在 Ubuntu VM 中運行 Docker 容器,則需要公開您在 docker-compose 文件中或在創建 cointainer 時可能需要的端口
docker-compose.yml 示例:
version: '3.1'
services:
rabbitmq:
build:
context: .
dockerfile: Rabbit-Dockerfile
container_name: broker
restart: always
environment:
TZ: GMT
RABBITMQ_DEFAULT_USER: rabbitIpi
RABBITMQ_DEFAULT_PASS: ipitasks2018
tty: true
hostname: rabbit
networks:
celerynet:
aliases:
- rabbit
ports: - 5672:5672 - 5671:5671 - 4369:4369 - 25672:25672 - 8181:15672
networks:
celerynet:
driver: bridge
docker 運行示例:
docker run -d -p 80:80 --name webserver nginx
在 Ubuntu VM 中公開容器的端口后,您需要使用容器的端口訪問 Ubuntu VM 的 ip。
如果您的 ubuntu VM 上有防火牆,則需要打開容器將使用的端口
對於 windows,Vagrant BOX 如果是 Oracle Virtual Box
網絡 - 可以處於 NAT 模式端口轉發應該作為規則添加.. 就像這樣,然后可以瀏覽 http:\\localhost:3000 Oracle VM 網絡設置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.