ZBLOG

我的情况: 1. 宿主机是 windows,其上运行着 MySQL 服务,但它并不是一个容器, 监听在 3306 端口。 2. 希望 Docker 容器能访问这个 MySQL 服务。 我执行 docker run -d -p 1989:1989 -p 3306:3306 tinyurl 但是出错了: docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306...

在 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 地址。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1234

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?