折腾CentOS7.9时遇到的一些问题

admin2023-07-04  126

在8代的小主机上安装CentOS,原本还是想安装7.2的,结果发现默认的驱动无法让网卡以及无线网卡正常工作,没有网络的话就玩不下去了。尝试换了7.3和7.4都不行,只有7.9才能正常。没办法只好安装7.9版了。

 

参照之前的一些折腾记录,发现安装了最新版本的docker无法安装portainer和hass,排查之后发现portainer无法安装竟然是跟DNS有关,以前确实没有遇到。因为小主机是放在家里的,用的内网,习惯性的将DNS设置成了家里的路由器IP地址。发现问题之后,就修改网络配置,将DNS改成了8.8.8.8,再重新安装portainer就成功了。

 

然后安装hass,也是无法安装成功,但是出现的问题不一样。排查发现是因为运行命令中多写了一个参数-p,这个参数在命令语句中重复了。

原命令语句是:

docker run -d --name="hass" -v /home/hass/config:/config -p -p 8123:8123 homeassistant/home-assistant:latest

 

修改之后:

docker run -d --name="hass" -v /home/hass/config:/config -p 8123:8123 homeassistant/home-assistant:latest

 

然后就安装成功了。安装好了,但是无法访问。

用docker ps命令查看,发现没有任何容器运行。纳泥?明明都有两个容器成功安装了,竟然没有运行?

再用docker ps命令,加上-a参数查看所有容器,终于看到了安装成功的两个容器,但是这两个容器并没有运行。

 

用docker start hass命令运行hass容器,报错:

Error response from daemon: driver failed programming external connectivity on endpoint hass (2ab618bc45d9f884ad630fe63f0b8d9d15377f47e3a0ae98bfe4e033e0e448d7):  (iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 8123 -j ACCEPT: iptables: No chain/target/match by that name.
 (exit status 1))

 

通过度娘查了一下原因:

原因:在我们启动了Docker后,我们再对防火墙firewalld进行操作,就会发生上述报错,

详细原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,

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

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

当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后操作 firewalld ,你就需要重启 Docker 进程了。

 

解决方法是重启docker:

systemctl restart docker

 

重启成功,再次运行启动容器命令:

docker start hass

 

hass容器成功运行,跟着portainer也同样成功运行。

转载请注明原文地址:http://www.198484.com/?read-112.html
0

最新回复(0)