Mac怎么在Docker容器中访问本地数据库或从Docker容器内部连接到计算机问题解决

问题描述

当应用某个应用使用本地Docker容器部署,但是还需要访问本地服务时(如数据库),使用宿主机IP,127.0.0.1,localhost均无法访问,后2者好理解,都属于Docker容器的回环地址,前者:相当于Docker本身,对于Docker来说,容器与宿主机是用Docker虚拟机的网关来通讯,所以无法联接。

环境

Docker:Docker version 20.10.0, build 7287ab3
MacOS Catalina 10.15.7

官方给出的解决方案:

I want to connect from a container to a service on the host
The host has a changing IP address (or none if you have no network access). We recommend that you connect to the special DNS name host.docker.internal which resolves to the internal IP address used by the host. This is for development purpose and does not work in a production environment outside of Docker Desktop.

意思就是,如果你想要从容器连接外部地址,在docker容器中,只需将db主机设置为host.docker.internal这将被转发给运行docker容器的主机.
官方文档:https://docs.docker.com/desktop/networking/#per-container-ip-addressing-is-not-possible

简单的说就是数据库地址或者需要访问的本地服务的地址使用host.docker.internal就可以了。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值