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

时间:2017-06-13 23:09:09

标签: docker virtualbox aem

计算机 - MAC bookPro Mac OSx 10.11.6

Docker - 适用于mac Docker version 17.03.1-ce, build c6d412e的Docker

VirtualBox - Version 5.1.22 r115126 (Qt5.6.2)

我的AEM(CMS)在Virtual Box上的图像上运行,使用Vagrant + Chef进行配置。我们明确地将IP分配给框 - 192.168.x.x

我们已经推出了一个微服务(Spring boot + MySQL),我们希望使用Docker进行部署。 在我的本地(MAC)上,我成功启动并运行了微服务,并成功连接了两个docker实例(Microservice,MySQL)。微服务暴露了我需要从虚拟框中运行的AEM调用的某些端点。这是我无法做到的,我的虚拟机实例无法连接到docker托管应用程序(我的虚拟机中无法访问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公开的应用程序。

1 个答案:

答案 0 :(得分:0)

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

由于您提到要从虚拟机内部访问Mac,因此您有以下几种选择:

  • (virtualbox主机模式网络) - 只需连接到虚拟机主机网络上的mac的IP地址即可。通常这将与虚拟机VM的IP匹配,但以.1结尾。例如,如果连接到仅主机网络的虚拟机的以太网接口具有IP 192.168.30.100,则该主机网络上的mac的IP几乎肯定是192.168.30.1。您应该能够在Mac上ifconfig的输出中看到此IP。
  • (virtualbox NAT模式网络) - 连接到虚拟机VM所见的网关的IP地址。 Virtualbox的主机模式网络将这些连接转发到您的mac的127.0.0.1
  • 连接到您的mac的en0 ip地址。仍可从虚拟机VM内部访问此IP。