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

机器 – MAC bookPro Mac OSx 10.11.6

Docker – Docker for Mac Docker version 17.03.1-ce, build c6d412e

VirtualBoxVersion 5.1.22 r115126 (Qt5.6.2)

我有我的AEM(CMS)在Virtual Box上的图像上运行,使用Vagrant + Chef进行configuration。 我们明确地分配IP到框 – 192.168.xx

我们引入了一个我们希望用Docker部署的微服务(Spring boot + MySQL)。 在我的本地(MAC)上,我成功地启动了Microservice并运行了两个Docker实例(Microservice,MySQL)。 微服务公开了我需要从虚拟框中运行的AEM调用的某些端点。 这是我无法做到的事情,我的virtualbox实例无法连接到docker托pipe的应用程序(docker机器的IP在我的virtualbox中无法访问)

我使用docker撰写来让我的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,你有几个select:

  • (虚拟主机模式联网) – 只需在虚拟主机专用networking上连接到您的mac的IP地址即可。 通常这将匹配virtualbox虚拟机的IP,但以.1结尾。 例如,如果连接到主机专用networking的virtualbox以太网接口的IP为192.168.30.100,则该主机专用networking上的专用IP几乎肯定是192.168.30.1。 你应该能够看到这个IP在你的MAC上的ifconfig的输出。
  • (virtualbox NAT模式networking) – 连接到您的virtualbox虚拟机看到的网关的IP地址。 Virtualbox的主机模式networking将转发这些连接到您的Mac的127.0.0.1
  • 连接到你的mac的en0 ip地址。 该IP仍然可以从您的virtualbox虚拟机中访问。