docker中容器与容器之间的通信(java项目与oracle之间的通信)
如果在本地运行,访问docker中的项目,是可以的
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
检测自己的docker是否支持host.docker.internal或docker.for.mac.host.internal
macdeMacBook-Pro:~ mac$ nslookup host.docker.internal
Server: 172.20.10.1
Address: 172.20.10.1#53
** server can't find host.docker.internal: NXDOMAIN
macdeMacBook-Pro:~ mac$ nslookup docker.for.mac.host.internal
Server: 172.20.10.1
Address: 172.20.10.1#53
** server can't find docker.for.mac.host.internal: NXDOMAIN
如果在docker也构建springboot项目,就是容器与容器之间的通信,就需要用到
Mac:docker.for.mac.host.internal
Linux:host.docker.internal
spring.datasource.url=jdbc:oracle:thin:@docker.for.mac.host.internal:1521:XE
linux的可能需要在构建时提前配置
在 Docker 20.10 及以上版本中,Docker 访问宿主机的方式有所变化:
在 Docker 命令行中,添加:
--add-host=host.docker.internal:host-gateway
在 docker-compose 中,添加:
extra_hosts:
- host.docker.internal:host-gateway
即可通过 host.docker.internal 域名访问宿主机。