欢迎来到代码驿站!

当前位置:首页 >

docker容器访问宿主机的MySQL操作

时间:2022-04-24 10:16:49|栏目:|点击:

背景:

有一个flask项目提供接口,使用docker容器构建并且运行,MySQL在宿主机运行,需要在容器中可以让flask连接上宿主机的mysql

使用ifconfig命令可以看到,有一个docker0和eth0,在docker容器中可以通过eth0的IP地址加上端口号(3306)这样就可以连接上宿主机的MySQL了;另外,nginx可以通过docker0的IP地址加上构建容器时指定的端口号进行访问容器。

补充:docker的mysql容器运行正常,但是宿主机却连不上数据库,解决方法来啦

docker运行mysql容器正常,宿主机Navicat却无法连接

我在docker上面执行docker ps显示如下:

说明我的mysql是正常的,但是我用sqlyog和Navicat都无法连接我的数据库,后来才发现问题所在,之前我在创建mysql容器(docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.35)时候虽然成功,但是有一句提示我疏忽了:

这里提示网络不可用,所以宿主机无法连接数据库

解决办法:现在输入这个命令vim /usr/lib/sysctl.d/00-system.conf(vim不行的话你就输入vi):

马上会出现这个:

在末尾添加这句: net.ipv4.ip_forward=1 (添加的指令是这样:先按i 键,接着你就可以操作了)然后保存退出(写好了net.ipv4.ip_forward=1这个命令按esc键,接着Ctrl+: 最后输入wq! 你就保存退出了),你再重启network服务: systemctl restart network 先把刚才那个mysql的容器停止docker stop docker ,再把容器删了docker rm mysql 如下:

现在你可以重新创建mysql的容器了,看下效果:

是不是没有那个网络不可用的警告了;我用sqlyog连接的,用Navicat连也一样:

上一篇:交互式可视化js库gojs使用介绍及技巧

栏    目:

下一篇:docker 容器上编译 go 程序提示找不到文件问题

本文标题:docker容器访问宿主机的MySQL操作

本文地址:http://www.codeinn.net/misctech/200038.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有