【随手记录】关于docker启动后一直处于Active: activating (start)状态

docker部署之后 systemctl start docker 启动服务,服务状态一直处于 Active: activating (start)状态,
使用journalctl -n 50|grep docker查看日志,第一次发现有错误信息:

warning msg="could not change group /var/run/docker.sock to docker: group docker not found"

这个错误表明Docker守护进程试图将/var/run/docker.sock的组更改为docker组,但是没有找到docker组。这通常发生在安装了Docker但未正确配置用户权限时。

解决方法:

1、创建docker组(如果尚未创建):
sudo groupadd docker
2、将当前用户添加到docker组:
sudo usermod -aG docker $USER
3、重新创建docker.sock的权限,确保它属于正确的组:
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock
4、重新启动Docker服务:
sudo systemctl restart docker

重启之后确实没有整个错误了

但是docker服务还是处于Active: activating (start)状态

后面发现firewalld开启着,firewall的底层是使用iptables进行数据过滤,建立在iptables之上,而docker使用iptables来进行网络隔离和管理,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作

解决方法:

1、先关闭防火墙
systemctl stop firewalld
2、修改docker配置
#修改docker配置
vim /etc/docker/daemon.json
#添加规则
{
...
"experimental" : true,
"iptables": false
}
#重启docker
systemctl daemon-reload
systemctl restart docker
3、开启或重启防火墙
systemctl restart firewalld
4、再次重启docker,docker服务状态正常
systemctl restart docker

此时docker服务的端口只能本地127.0.0.1访问,再打开firewalld防火墙,且开启NAT转发功能后,docker和外部就可以正常访问了

 

posted @ 2024-09-06 15:03  空知大仙人  阅读(264)  评论(0编辑  收藏  举报