在 Windows 宿主机上运行的 MySQL 服务不是一个 Docker 容器,因此不能使用容器之间的互连方式来访问。但可以通过端口映射来让 Docker 容器访问宿主机上的 MySQL 服务。
由于端口 3306
已经被 MySQL 服务占用,因此不能将容器中的 3306
端口映射到宿主机的 3306
端口。可以将容器中的 3306
端口映射到其他端口,例如 3307
。
命令如下:
docker run -d -p 1989:1989 -p 3307:3306 tinyurl
这样,Docker 容器的 3307
端口就会映射到宿主机的 3306
端口,即 MySQL 服务所在的端口。
在应用程序中连接 MySQL 时,需要将主机名设置为宿主机的 IP 地址,例如 spring.datasource.url=jdbc:mysql://192.168.0.1:3306/mydatabase
,其中 192.168.0.1
是宿主机的 IP 地址。