Docker使用中遇到的各种问题以及解决方案

igxiaoshan Lv5

问题一

[root@CentOs7_001 ~]# docker start d040a1737203
Error response from daemon: driver failed programming external connectivity on endpoint mysql (565cca25921160ed2a13a2f2b1605138114e313ce2a684b309faf3ea830de202): (iptables failed: iptables –wait -t nat -A DOCKER -p tcp -d 0/0 –dport 3306 -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: d040a1737203

  • 问题复现复述

docker运行一个镜像;然后把这个容器停掉

修改宿主机的原始防火墙状态(关闭)为打开状态

重启容器报错

  • 解决方案

重启docker服务

重启docker服务及可重新生成自定义链DOCKER

  • 原因

docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。

当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。

问题二

[root@CentOs7_001 ~]# netstat -tanlp
-bash: netstat: command not found

  • 问题复现复述

使用 netstat -tanlp 查看进程使用报错

  • 解决方案

更新yum工具包下的配置

1
yum install -y net-tolls

问题三

[root@CentOs7_001 log]# docker logs -f 7d3edae397c1
2023-05-29 15:26:52+00:00 [Note][Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
2023-05-29 15:26:52+00:00 [ERROR][Entrypoint]: mysqld failed while attempting to check config
​ command was: mysqld –verbose –help –log-bin-index=/tmp/tmp.S3R6HCPiAQ
​ 2023-05-29T15:26:52.338540Z 0 [ERROR] COLLATION ‘utf8_general_ci’ is not valid for CHARACTER SET ‘latin1’
2023-05-29T15:26:52.341808Z 0 [ERROR] Aborting

  • 问题复现复述

启动mysql容器,启动配置如下

docker run -d -p 3306:3306 –privileged=true
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=root
–name mysql mysql:5.7

挂载外部的配置

[root@CentOs7_001 conf]# cat my.cnf

[client]
default_character_set=utf8

[mysqld]

Collation_server = utf8_general_ci

character_set_server = utf8

  • 解决方案
1
2
3
4
5
6
7
8
9
## 查看my.cnf的配置,修改配置
[client]
default_character_set=utf8

[mysqld]
character_set_server = utf8
collation_server = utf8_general_ci

## 重启服务即可
  • 原因

疑似:

上文配置中

[mysqld]

Collation_server = utf8_general_ci

character_set_server = utf8

字母大小写或者配置顺序的问题;后续可以多方面测试…得出最终结论

此页目录
Docker使用中遇到的各种问题以及解决方案