在docker网络中找到主机IP。如果您使用docker-compose.yml
version: "3",则该IP可能是:
172.18.0.1,
但请确认它 搜索您的容器(您的主机)的“网关”:
docker inspect <container-id-or-name> | grep Gateway"Gateway": "", "IPv6Gateway": "", "Gateway": "172.18.0.1", "IPv6Gateway": "",
因此,在您的docker应用程序内部,MySQL的指向如下
172.18.0.1:3306:(也许在配置文件中)。请注意,只要docker网络仍然相同,该IP就是固定的(该网络是由docker-
compose创建的,除非您这样做,否则不会将其删除
docker-compose down)
另外,检查您的MySQL是否正在监听其所有接口。在
my.cnf搜索
bind-address中应该是
0.0.0.0(如果服务器具有公共IP,请考虑安全性问题)。
或者,您可以将与主机相同的网络连接到容器,以共享本地主机,因此容器将在其中找到mysql。使用网络模式作为“主机”:
version: '3'services: web-app: build: context: . dockerfile: web-app/Dockerfile ports: - 8080:8080 network_mode: "host"
然后,将您
hibernate.properties的mysql 指向如下:
localhost:3306



