docker容器进程连接宿主机的mysql,redis等

在开发环境下使用Docker Desktop,可能`host.docker.internal`是最方便的。

首先,检查宿主机上的MySQL和Redis的监听地址。对于MySQL,配置文件通常是/etc/mysql/my.cnf或者/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address项,确保是0.0.0.0而不是127.0.0.1。修改后需要重启MySQL服务。对于Redis,配置文件是redis.conf,找到bind 127.0.0.1,可能需要改为0.0.0.0或者注释掉,同样需要重启Redis。 

在容器内部连接时,使用host.docker.internal。比如,如果MySQL在宿主机上的端口是3306,那么容器中的应用配置数据库主机为host.docker.internal:3306。但需要确保宿主机的防火墙(如ufw)允许来自Docker网桥的流量,比如允许172.17.0.0/16网段的连接。

对于Linux系统,如果`host.docker.internal`不可用,可以通过在运行容器时添加`--add-host`参数手动设置。例如:

docker run -d \
-p 8889:8889 \
--add-host=host.docker.internal:host-gateway \
--name api-admin \
admin  

 建立连接直接使用host.docker.internal当作IP地址即可

 url: jdbc:mysql://host.docker.internal:3306/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值