docker里面的代码生成的数据需要写入到宿主机的Mysql服务器上,想要用本地的数据库测试自己的代码正确性,项目程序安装在docker容器中,于是必定要在docker容器里访问到本地的数据库。

(1)在docker容器里localhost并不是指宿主机的localhost,因此不能在容器中通过localhost:3306访问到宿主机的mysql,也不可以通过127.0.0.1访问。

(2)docker在运行时就建立了虚拟网卡,并命名为docker0,可以在宿主机上运行ifconfig看到它,这就是宿主机建立的网桥,用于与各个容器之间通信。

[root@VM-8-15-centos ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255inet6 fe80::42:53ff:fed0:4c11  prefixlen 64  scopeid 0x20<link>ether 02:42:53:d0:4c:11  txqueuelen 0  (Ethernet)RX packets 4489  bytes 6944799 (6.6 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3379  bytes 999348 (975.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ifconfig 为什么看不到 docker0
在最近的 Docker 版本中,docker0 网络接口已经被弃用,因此您在使用最新版本的 Docker 时可能看不到该接口。

相反,Docker 现在使用名为 bridge 的网络驱动程序来管理 Docker 容器的网络连接。您可以使用 ip addr 命令来查看当前正在运行的 Docker 网络:

$ ip addr show docker0

(3)宿主机在与容器同一局域网的IP地址一般是docker0对应的IP地址段的首个地址(如172.17.0.1),因此,可以在容器里通过172.17.0.1:3306访问到宿主机的mysql服务器。

mysql服务器默认的设置为允许127.0.0.1段的ip地址访问

如果用172.17.0.1:3306仍然无法访问到宿主机的话,需要设置一下mysql的访问权限:

如果用的是宝塔面板,可以给nacos这个数据库设置权限为所有人

 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION;mysql>flush privileges;
// 其中各字符的含义:
// *.* 对任意数据库任意表有效
// "root" "12345678" 是数据库用户名和密码
// '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
// flush privileges 刷新权限信息

Docker容器的程序连接宿主机的MySQL相关推荐

  1. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...

  2. Docker——容器内部执行宿主机的docker命令

    现在有一个需求是在容器内部使用docker命令,但试了一下报命令不存在 解决办法: 把docker相关的命令和依赖使用-v挂载到容器 docker@box:~$ docker run -it -d \ ...

  3. 容器宿主机数据库_解决Docker容器内访问宿主机MySQL数据库服务器的问题

    懒得描述太多,总归是解决了问题,方法简要记录如下,虽然简要,但是完整,一来纪念处理该问题耗费的大半天时间,二来本着共享精神帮助其他遇到该问题的哥们儿,当然这个方法并不一定能解决你们的问题,但是多少能提 ...

  4. docker连不上宿主机mysql_宿主机连接docker中的mysql

    宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 3306: ...

  5. Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络

    Docker原生网络.自定义网络.Docker容器通信.跨主机容器网络 Docker原生网络 bridge Host none Docker自定义网络 自定义bridge overlay macvia ...

  6. docker 内部ping不通宿主机_Docker容器数据管理

    在Docker容器内部创建的文件默认存储在可写的容器层,容易产生几个问题: 当容器不存在时,数据文件不能持久化,同时这些数据文件不方便在容器之外被其他进程使用. 当容器运行的时候容器可写层严重依赖宿主 ...

  7. java 获取docker ip_docker容器内部获取宿主机ip地址方法以及报错解决

    1,在docker容器内执行以下python代码或根据需要插入到你的.py文件中: import paramiko #通过pip3 install paramiko 安装 s = paramiko.S ...

  8. docker内应用连接宿主机mysql

    前言 装了个docker版的贴吧签到,需要mysql数据库,发现使用127.0.0.1和localhost连不上宿主机mysql. 于是到网上查了下. 系统是CentOS,腾讯云宝塔定制版. 解决方法 ...

  9. docker访问宿主机mysql_docker容器内访问宿主机127.0.0.1服务

    点击上方"技术生活",选择"设为星标" 做积极的人,而不是积极废人 背景 原因分析 解决方案 背景 已经通过docker启动的elasticsearch 服务, ...

最新文章

  1. matlab length_《Matlab - Robotics System Toolbox》学习笔记(2)
  2. Android 正则表达式
  3. angular1.0 $http jsonp callback
  4. 基于BindingSource的WinForm开发
  5. mUrlPrefixes内entry的population逻辑
  6. 在ASP.NET AJAX中使用应用程序服务和本地化(5):自定义应用程序服务的服务器端实现...
  7. 【Hive】Hive的数据类型
  8. 【原创】StackDocklet 完美攻略
  9. 封电脑机器码怎么解决_如何通过修改机器码解决游戏封号问题
  10. 开发者需要什么样的技术社区?
  11. 黑少微服务商店实战经验分享:从单体式架构迁移到微服务架构
  12. matlab ill,Matlab跑GMM聚类时出现Ill-conditioned covariance created at iteration xx错误提示
  13. 英皇考级——听力测试的训练方法
  14. 嵌入式系统 ---> 程序存储器和数据存储器
  15. 项目开发——课程表查询APP
  16. 南京理工大学计算机学院张勇,南京理工大学教师信息
  17. pc端调用电脑摄像头及麦克风完成录像或录音并实现回放和上传服务器
  18. 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程
  19. java 手机声音提醒功能_Android基于广播事件机制实现简单定时提醒功能代码
  20. Python爬虫贴吧内容

热门文章

  1. 文献管理工具EndNote 20.5版本下载安装使用教程
  2. VS code 编写汇编代码【微机原理】
  3. 韩购物网站服务器遭黑客攻击 千万用户信息被泄
  4. 如何对付网络爬虫 - JavaEye和网络爬虫斗争之路
  5. margin--负的margin的使用
  6. 火山PC文件资源的读写教程
  7. 国内cPanel空间试用手记
  8. 用python爬取豆瓣书评,简短Python爬虫爬取《人民的名义》豆瓣书评,附源代码和逐行解释...
  9. linux卸载crossover,CrossOver Linux版如何在Ubuntu中安装?Ubuntu安装CrossOver Linux版教程...
  10. 怎么找回大话西游2的服务器,大话西游2开年重新回归必看 详细回坑攻略助你省事...