docker如何搭建mysql(docker容器访问宿主机的MySQL操作)
docker如何搭建mysql
docker容器访问宿主机的MySQL操作背景:有一个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连也一样:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
- docker部署redis集群查看版本(docker下的 redis 之持久化存储详解)
- docker pull 更新本地镜像(Docker 拉取镜像及标签操作 pull | tag)
- springboot docker 部署(详解docker部署SpringBoot及替换jar包的方法)
- volume怎么添加docker(docker volume删除卷的操作)
- docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)
- docker垃圾清理(docker磁盘空间清理的解决办法)
- docker搭建elasticsearch(docker安装ElasticSearch:7.8.0集群的详细教程)
- 如何删除docker中已停止的容器(一条命令重启所有已停止的docker容器操作)
- docker服务重启容器是否重启(docker自定义网桥docker0及docker的开启,关闭,重启命令操作)
- docker中国加速镜像怎么设置(Docker 安装及配置镜像加速的实现)
- docker socket文件丢失(解决vscode docker插件docker.socket权限问题)
- 配置阿里云docker镜像地址(Docker配置阿里云镜像加速pull的实现)
- docker 镜像导入导出(Docker镜像的导入导出代码实例)
- 用docker搭建在线开发环境(Docker环境搭建的简单方法)
- docker集群安装教程(使用docker部署hadoop集群的详细教程)
- docker-compose 开发代码(Docker Compose多容器部署的实现)
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
- 一课译词 放鸽子(一课译词放鸽子)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9