一、docker和宿主机网络
- 在docker容器里localhost并不是指宿主机的localhost
- 在docker运行时就和宿主机建立了虚拟网卡,可以通过ifconfig查看,会发现多了一个docker0,一般ip为172.17.0.1,它就是宿主机建立的网桥,用于与各个容器之间通信
二、docker连接宿主机mysql
- 先修改mysql的授权,允许其他ip连接mysql
#登录
mysql -uroot -p
#授权
grant all privileges on *.* to root@"%" identified by '你的root账户密码' with grant option;
#刷新权限
flush privileges;
注意!!!
- 不要复制代码直接粘贴!请把上述代码中你的root账户密码换成自己的
2. 修改docker容器里连接数据库配置,将连接ip改为docker0 的ip:172.17.0.1
三、若宿主机防火墙firewalld是开启状态
使用 docker,出现 No route to host 这个问题
或者宿主机使用docker运行了nginx, nginx又将后台代理到宿主
将docker0添加到防火墙白名单
firewall-cmd --permanent --zone=trusted --change-interface=docker0
完毕!
原创: @小火柴阿
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。