macOS下Multipass运行Docker Swarm拉取镜像遇408超时错误求助
解决方案与排查建议
1. 先排查虚拟机网络连通性
- 在Ubuntu虚拟机里执行
ping -c 4 docker.io,看看能不能正常连通Docker官方仓库服务器。要是丢包多或者连不上,说明Multipass的网络配置有问题,得先搞定网络。 - 试试换个DNS服务器,编辑
/etc/resolv.conf,把里面的DNS改成nameserver 8.8.8.8或者nameserver 1.1.1.1,改完重启Docker:sudo systemctl restart docker,再拉镜像试试。
2. 调大Docker拉取超时时间
- 新建或修改Docker配置文件
/etc/docker/daemon.json,添加超时配置:{ "timeout": 300 } - 保存后执行
sudo systemctl daemon-reload && sudo systemctl restart docker,再跑docker pull redis试试。
3. 换国内镜像源提速
- 国内访问官方源慢的话,给Docker加国内镜像源,同样修改
/etc/docker/daemon.json:{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] } - 重启Docker服务后重试拉取操作。
4. 检查虚拟机资源够不够
- 用
multipass info promising-pilchard看虚拟机的CPU和内存分配,要是内存小于2G、CPU只有1核,很可能导致Docker跑不动超时。 - 先停掉虚拟机:
multipass stop promising-pilchard,然后调资源:multipass set local.promising-pilchard.cpus=2和multipass set local.promising-pilchard.memory=4G,启动虚拟机后再试。
5. 重启Swarm相关服务
- 要是是Swarm集群环境,先查节点状态:
docker node ls,确保当前节点是Ready状态。 - 重启Docker Swarm服务:
sudo systemctl restart docker,或者如果是worker节点,先退出Swarm再重新加入:docker swarm leave,之后重新加入集群再试。
内容的提问来源于stack exchange,提问作者Nikilai
相关产品推荐
相关产品推荐

