You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker客户端强制使用IPv6拉取镜像,如何切换为IPv4?

解决方案

一、强制Docker使用IPv4拉取镜像

1. 完善Docker守护进程配置

编辑/etc/docker/daemon.json,补充IPv4相关配置:

{
    "insecure-registries": ["192.168.0.105:5000"],
    "ipv6": false,
    "ip6tables": false,
    "dns": ["8.8.8.8", "1.1.1.1"]
}

保存后重启Docker服务:

sudo systemctl restart docker

2. 临时强制客户端用IPv4拉取

如果守护进程配置未生效,可临时设置环境变量拉取镜像:

DOCKER_CLIENT_IP=0.0.0.0 docker pull arm32v7/postgres

3. 确保系统IPv6完全禁用

检查并禁用所有网卡的IPv6:

echo 1 | sudo tee /proc/sys/net/ipv6/conf/default/disable_ipv6
echo 1 | sudo tee /proc/sys/net/ipv6/conf/eth0/disable_ipv6  # 替换eth0为你的网卡名(如wlan0)

若要开机自动生效,可将上述命令添加到/etc/rc.local文件中(需确保文件有执行权限)。

二、解决本地仓库的架构不匹配错误

出现no matching manifest for linux/amd64是因为本地仓库中只有amd64架构的镜像,树莓派(arm32v7)无法匹配。按以下步骤修复:

  1. 在主PC上拉取arm32v7架构的镜像并推送到本地仓库:
# 拉取对应架构镜像
docker pull arm32v7/postgres
# 打标签指向本地仓库
docker tag arm32v7/postgres 192.168.0.105:5000/arm32v7/postgres
# 推送到本地仓库
docker push 192.168.0.105:5000/arm32v7/postgres
  1. 在树莓派上拉取本地仓库的镜像:
docker pull 192.168.0.105:5000/arm32v7/postgres

三、验证配置有效性

重启Docker后,执行以下命令确认IPv6已禁用:

docker info | grep IPv6

输出应为IPv6: disabled。

内容的提问来源于stack exchange,提问作者user23499103

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:52:34