“CentOS 上 Docker 无法连接”这个问题比较宽泛,常见有几种不同的“无法连接”场景。下面我按最常见的情况给你梳理原因和解决办法,你可以对照看看是哪一种。
报错类似:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
# 查看状态
systemctl status docker
# 启动
systemctl start docker
systemctl enable docker
如果是权限问题:
sudo usermod -aG docker $USER
newgrp docker
比如:
ping 8.8.8.8
curl https://www.baidu.com
失败
systemctl stop firewalld
# 或
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
cat /proc/sys/net/ipv4/ip_forward
# 应为 1
如果不是 1:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
/etc/docker/daemon.json:{
"dns": ["8.8.8.8", "114.114.114.114"]
}
然后:
systemctl restart docker
比如:
docker run -p 8080:80 nginx
curl http://localhost:8080 失败
docker ps
docker logs 容器ID
firewall-cmd --list-ports
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
alternatives --set iptables /usr/sbin/iptables-legacy
docker network ls
docker network inspect 网络名
建议:
docker network create mynet
docker run --network mynet ...
比如 docker pull 超时
配置国内镜像:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com"
]
}
重启:
systemctl restart docker
你可以告诉我:
cat /etc/redhat-release)docker version)我可以帮你逐条排查。