问答

mac中的docker如何连接本机的mysql ,数据库应该用docker吗?

作者:admin 2021-07-04 我要评论

首先描述下我现在本地的是一个node项目(nest.js),在连接mysql数据库的配置文件里(用的typeorm)数据库链接地址写了localhost发现连接不上去,搜索了一下知道doc...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

首先描述下我现在本地的是一个node项目(nest.js),在连接mysql数据库的配置文件里(用的typeorm)数据库链接地址写了localhost发现连接不上去,搜索了一下知道docker中的localhost不是本机localhost,要把localhost换成docker0的ip地址才行,但是这时候我有了两个问题:
1,我本地是mac,mac中没有docker0网卡
2,docker上传到vps生产环境后,他的ip地址会变化吗?如果变化的话际开发中如何保证在本地ok上生产后那些环境变量也能保证没问题呢?

网上搜的很多教程是把mysql也做成了docker镜像,但是好像也有很多人说数据库不应该使用docker,现在大公司主流的做法究竟是什么呢?我是前端,这块学的很吃力,希望能有大佬解答一下。。。

###

当你在容器内使用 localhost 是,实际是指向的容器内的 localhost ,所以你并不能访问到主机的服务。

在容器内访问主机应该使用 host.docker.internal 或者 gateway.docker.internal 来代替原本的 localhost 。

遗憾的是,在 linux 中没法使用这个办法,你得使用 docker0 网卡的方式,这个IP分配给容器后也不会变化。

2、是否使用容器来运行 MySQL 并无太大差异,因为你的数据始终应该落地到主机,但是根据推荐使用全套,因为这样可以消除不同环境的环境差异。

你可以用 docker inspect <容器名字或ID> 来查看容器的网关地址,这通常是 172.17.0.1

参考资料

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP的use 的 前提是包中的文件需要提前

    PHP的use 的 前提是包中的文件需要提前

  • 为什么分布式项目中需要分布式锁,而普

    为什么分布式项目中需要分布式锁,而普

  • mysql高效查询评论及回复内容,并且分

    mysql高效查询评论及回复内容,并且分

  • tp5 数据库查询  如何进行多对多查询

    tp5 数据库查询 如何进行多对多查询

腾讯云代理商
海外云服务器