docker - 麦克 |从 VirtualBox 机器上的另一个应用程序访问部署在 Docker 上的应用程序

标签 docker virtualbox aem

机器 - MAC bookPro Mac OSx 10.11.6
docker - Docker for mac Docker version 17.03.1-ce, build c6d412e
虚拟盒子 - Version 5.1.22 r115126 (Qt5.6.2)
我的 AEM (CMS) 在 Virtual Box 上的图像上运行,使用 Vagrant + Chef 进行配置。我们将 IP 明确分配给盒子 - 192.168.x.x

我们已经介绍了一个我们希望使用 Docker 部署的微服务(Spring boot + MySQL)。
在我的本地(MAC)上,我成功启动并运行了微服务,并且两个 docker 实例(微服务、MySQL)成功地相互连接。微服务公开了我需要从在 Virtual box 中运行的 AEM 调用的某些端点。这是我无法做到的事情,我的 virtualbox 实例无法连接到 docker 托管应用程序(在我的 virtualbox 中无法访问 docker 机器的 ip)

我使用 docker compose 让我的 docker 实例正常工作-

这是我的docker-compose.yml

version: "3"

services:
  db:
    #build:
    #  context: ./registration-database
    image: mysql
    container_name: afs-mysql
    #network_mode: "bridge"
    # set default mysql root password, change as needed
    environment:
      MYSQL_DATABASE: afs_service
      MYSQL_ROOT_PASSWORD: root
    # Expose port 3306 to host. Not for the application but
    # handy to inspect the database from the host machine.
    ports:
      - "3309:3306" 
    restart: always

  webserver:
    container_name: afs-microservice
    #network_mode: "bridge"
    depends_on:
      - db
    links:
      - db
   # build: 
   #   context: ./registration-webserver
    image: afs-service
    # mount point for application in tomcat
    #volumes:
    #  - ./app/target/UserSignup:/usr/local/tomcat/webapps/UserSignup
    environment:
      DATABASE_HOST: db
      DATABASE_USER: root
      DATABASE_PASSWORD: root
      DATABASE_NAME: afs_service
      DATABASE_PORT: 3306
    # open ports for tomcat and remote debugging
    ports:
      - "8080:8080" 
      - "8089:8089"
    restart: always

还需要做些什么,以便我可以从 virtualbox 访问 docker 公开的应用程序。

最佳答案

您可以通过连接到您的 mac 的 IP 地址来访问任何 docker-for-mac 发布的端口。

由于您提到要从虚拟机内部访问您的 Mac,您有几个选择:

  • (virtualbox 主机模式网络) - 只需在 virtualbox 主机网络上连接到您的 mac 的 IP 地址。通常这将匹配 virtualbox VM 的 IP,但以 .1 结尾.例如,如果连接到仅主机网络的 virtualbox 以太网接口(interface)的 IP 为 192.168.30.100,则您的 mac 在该仅主机网络上的 ip 几乎可以肯定是 192.168.30.1。您应该能够在 ifconfig 的输出中看到此 ip在你的 Mac 上。
  • (virtualbox NAT 模式网络) - 连接到您的 virtualbox VM 看到的网关的 IP 地址。 Virtualbox 的主机模式网络会将这些连接转发到您的 mac 的 127.0.0.1
  • 连接到你的 mac 的 en0 ip 地址。仍然可以从您的 virtualbox VM 内部访问此 IP。
  • 关于docker - 麦克 |从 VirtualBox 机器上的另一个应用程序访问部署在 Docker 上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532955/

    相关文章:

    android - 在 VirtualBox 上为 Android 4.3 设置静态 IP

    java - 无法执行目标 org.apache.felix :maven-scr-plugin:1. 20.0

    docker - Docker无效的引用格式?

    docker - 带有 GitLab 的私有(private) Docker-Registry

    android - 无法初始化 OpenGL 渲染器库

    php - Vagrant phpmyadmin php 显示为纯文本问题

    java - Eclipse 中的调试器不工作

    java - 为什么吊索 :OsgiConfig node not working in/etc/folder in AEM?

    docker - Cloudera和Docker

    docker - 私有(private) Docker 注册表/存储库的现代状态