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

发布于 2022-09-12 03:32:41 字数 378 浏览 20 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛滥成性 2022-09-19 03:32:41

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

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

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

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

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

参考资料

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文