在Windows机器上,要为Virtual Box上的VM中运行的Docker容器的IP使用什么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:~$
我可以ping IP 172.17.0.2,并在VM本身上卷曲https://hash--sitename.netlify.com。但是在Windows计算机上尝试http://172.17.0.2时,我没有响应。
问题 -我从Windows机器使用什么IP来获取VM上运行的Docker容器?
答案 0 :(得分:1)
如果您将Windows与Ubuntu VM一起使用,并且在Ubuntu VM内运行Docker容器,则需要在docker-compose文件中或在创建硬币容器时公开需要的端口
>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 run示例:
docker run -d -p 80:80 --name webserver nginx
在Ubuntu VM中公开容器的端口后,您将需要使用容器的端口访问Ubuntu VM的ip。
如果您的ubuntu VM上有防火墙,则需要打开容器将使用的端口
答案 1 :(得分:1)
为了向您的主机公开docker IP,您需要将VM网络设置设置为“桥接适配器”。
我使用macOS,但我认为在Windows中也是如此。
然后,检查您的VM IP。例如,如果您的VM IP为192.168.30.100,而您的docker在端口8000中运行。现在,您可以从主机访问IP为192.168.30.100:8000的docker。
答案 2 :(得分:1)
要求:
windows 7
docker-toolbox
说明:
docker-machine ssh default
在主机虚拟机中使用SSH ip addr
答案 3 :(得分:0)
对于Windows,如果是Vagrant BOX,则为Oracle Virtual Box
网络-可以处于NAT模式 端口转发应该作为规则添加..类似这样的东西 然后可以使用http:\ localhost:3000浏览 Oracle VM Network settings