docker之故障问题解决方案

1、报错如下一

Error response from daemon: driver failed programming external connectivity on endpoint lnmp_mysql (61ce99378a4416221af9f6da52209b4473561a311f99e2ffa8b889915eafb56a): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3308 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.

(exit status 1))
Error: failed to start containers: 005afd180cd7

解决方案如下

清空防火墙规则,重启docker

[root@node03 web]# iptables -F
[root@node03 web]# iptables -t nat -F
[root@node03 web]# service iptables save
[root@node03 web]# service iptables restart

[root@node03 web]# systemctl restart docker

注释:因为docker的规则会自己在iptables 里面生产,如果没有清空规则,会有诸多限制。

2、Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

解决方法如下:

1、登录到mysql容器中

[root@node03 web]# docker exec -it lnmp_mysql bash

2、在登录mysql

root@8e84ab34e6fe:/# mysql -uroot -p

3、授权用户访问

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (2.29 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.39 sec)

4、数据库可以链接了

原文地址:https://www.cnblogs.com/zoulixiang/p/9597888.html