准备工作:
1. 检查网络
- 检查网络连接:确保你的服务器网络连接正常,可尝试使用
ping
命令测试与 Docker Hub 服务器(如ping registry-1.docker.io
)的连通性。
ping registry-1.docker.io
- 检查防火墙:确认防火墙是否阻止了 Docker 与 Docker Hub 之间的通信。若使用的是
firewalld
,可使用以下命令开放 Docker 相关端口:
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
2. Docker 镜像源配置问题
- 检查国内镜像源:检查 Docker 配置文件
/etc/docker/daemon.json
,示例如下
vim /etc/docker/daemon.json
- 配置国内镜像源:使用国内的 Docker 镜像源可以加快镜像拉取速度并减少超时问题。你可以通过修改 Docker 配置文件
/etc/docker/daemon.json
来配置镜像源,示例如下
{"registry-mirrors": ["https://0dj0t5fb.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","https://6kx4zyno.mirror.aliyuncs.com","https://docker.1ms.run","https://registry.docker-cn.com"]
}
修改完成后,重启 Docker 服务:
sudo systemctl restart docker
3. DNS 配置问题
- 检查 DNS 设置:确保你的服务器 DNS 配置正确,可修改
/etc/resolv.conf
文件,添加可靠的 DNS 服务器,例如:
vim /etc/resolv.conf
- 修改DNS服务器
修改为以下设置:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
4. Docker 服务问题
- 重启 Docker 服务:有时候 Docker 服务可能出现异常,可尝试重启 Docker 服务来解决问题:
sudo systemctl restart docker
完成上述操作后,你可以再次尝试拉取 postgres:14.2
镜像:
docker run --name postgres --restart=always -e POSTGRES_PASSWORD=postgres -p 5432:5432 -v /home/postgres/data:/var/lib/postgresql --privileged -d postgres:16