如何通过 VirtualBox 上的虚拟机内的 Docker 容器访问网页(例如 nginx index.html)

如何通过 VirtualBox 上的虚拟机内的 Docker 容器访问网页(例如 nginx index.html)

我解释了我的问题,我有一个用 VagrantFile 创建的虚拟机,它从我的 LAN(通过网桥)获取 IP。

因此承认我的 VM 有一个 IP(192.168.15.11),在这个 VM 中我创建了 3 个 docker 容器,它们都有一个来自 docker 网络的 IP。

  • 1 个 nginx 容器(ip:172.20.0.2)
  • 1 个用于 traefik 的容器(ip:172.20.0.3)
  • 1 个 portainer 容器(ip:172.20.0.4)

因为我公开了这个端口,所以我可以从我的主机访问我的 traefik(192.168.15.11:8080)和我的 partialer(192.168.15.11:9000)容器的仪表板。

但我想在我的主机上访问我的 Nginx 网页。

我尝试在我的虚拟机中输入以下行/etc/hosts

192.168.15.11 mynginx.com  

但它仍然不起作用,我不知道该怎么做才能解决这个问题。
有人有什么想法吗?

答案1

您无需指定在哪个端口上运行 nginx。在我的例子中,我在端口 80 上运行它。因此我只需以 http://VMIP 或 http://VMIP/index.html 进行访问

docker-compose.yml

  reverse:
    image: nginx:alpine
    container_name: reverse
    restart: unless-stopped
    hostname: reverse
    networks:
      - htpc-network
    environment:
      - PUID=${PUID} # default user id, defined in .env 
      - PGID=${PGID} # default group id, defined in .env
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/html:/usr/share/nginx/html
      - ../static:/usr/share/nginx/static  # get nginx to serve flask static content
      - ${ROOT}/complete:/usr/share/nginx/media # media library
    ports:
      - "80:80"

相关内容