解决docker报Error response from daemon Get httpsregistry-1.docker.iov2错误

解决docker报Error response from daemon: Get "https://registry-1.docker.io/v2/"错误

报错详情

首先先看一下问题报错效果,我想要拉去nacos-serve:1.1.4的镜像,报如下错误,从报错信息可以看到,用于网络的愿意,导致客户端连接超时

[root@localhost ~]# docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:1.1.4
Unable to find image 'nacos/nacos-server:1.1.4' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

具体解决方法如下:

1.备份原来的配置文件

cp /etc/docker/daemon.json{,.bak}

2.删除或修改daemon.json 文件,我这里因为是测试环境就直接删除原来的配置文件了,并添加如下配置

rm -rf /etc/docker/daemon.json 

sudo tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": [
>     "https://docker.1ms.run",
>     "https://docker.1panel.live/"
>   ]
> }
> EOF

3.重新加载配置文件和重启docker

 sudo systemctl daemon-reload
 sudo systemctl restart docker

4.再次拉取进行进行测试

[root@localhost ~]# docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:1.1.4
Unable to find image 'nacos/nacos-server:1.1.4' locally
1.1.4: Pulling from nacos/nacos-server
5ad559c5ae16: Pull complete 
6e9cb123f3e1: Pull complete 
035a01617e57: Pull complete 
f06623a3ec58: Pull complete 
2a36a33e88d6: Pull complete 
403a1ab0a74b: Pull complete 
12d67041a133: Pull complete 
c1010ab56ac6: Pull complete 
Digest: sha256:9d8d7be3bbadeb96b4796319b8c70e544b86f398a825a8fb2bffb7625dbbc20d
Status: Downloaded newer image for nacos/nacos-server:1.1.4
1001fd145caef6f4ac5c46b735a120dd0135523cfa43db666e0b3b5ae43a15e0
[root@localhost ~]# 
<think>嗯,用户遇到了Docker使用--storage-opt参数时的错误,提示需要overlay over xfs并启用'pquota'挂载选项。我需要先理解这个问题的背景。首先,用户可能在尝试调整容器的存储大小,但Docker错说明当前的文件系统不支持这个选项。 根据引用[1],错误信息明确指出--storage-opt仅在xfs文件系统上且启用了pquota的情况下有效。这说明用户的Docker存储驱动可能不是overlay2,或者文件系统不是XFS,或者XFS没有正确挂载选项。我需要检查如何配置这些条件。 接下来,用户需要确保Docker使用overlay2存储驱动。查看Docker的配置文件/etc/docker/daemon.json,如果不存在则需要创建,并设置storage-driver为overlay2。然后重启Docker服务,如引用[2]中的systemctl stop docker命令,可能涉及停止服务来修改配置。 然后是文件系统部分。用户需要确认/var/lib/docker所在的文件系统是否是XFS,并且挂载时启用了pquota。使用df -Th命令查看挂载点,如果是其他文件系统比如ext4,可能需要重新挂载或者调整分区。如果是XFS,检查挂载选项是否包含pquota,如果没有,需要重新挂载,如引用[2]中的mount命令示例。 另外,用户可能需要永久修改挂载选项,编辑/etc/fstab文件,添加pquota选项,然后重新挂载分区。完成这些步骤后,重新启动Docker服务,再次尝试运行带有--storage-opt参数的容器,应该就能成功了。 还需要注意,用户可能对XFS和quota配置不熟悉,需要详细指导如何检查和修改这些设置,避免操作失误导致系统问题。同时,确保备份重要数据,防止配置错误导致数据丢失。最后,验证步骤也很重要,用户需要确认配置是否生效,存储驱动是否正确,以及挂载选项是否应用成功。</think>### 解决Docker的`--storage-opt`错误:XFS与pquota配置 #### 问题原因 当使用`--storage-opt`参数时,Docker要求存储驱动为`overlay`或`overlay2`,且底层文件系统为**XFS**并启用`pquota`(项目配额)挂载选项[^1]。若未满足条件,会触发错误: ```bash Error response from daemon: --storage-opt is supported only for overlay over xfs with 'pquota' mount option. ``` --- #### 解决步骤 1. **确认当前存储驱动与文件系统** - 检查Docker存储驱动: ```bash docker info | grep "Storage Driver" ``` 若输出非`overlay2`,需修改配置。 - 查看`/var/lib/docker`挂载的文件系统类型: ```bash df -Th /var/lib/docker ``` 需确保文件系统为`xfs`。 2. **配置Docker使用overlay2驱动** - 编辑Docker配置文件`/etc/docker/daemon.json`: ```json { "storage-driver": "overlay2" } ``` - 重启Docker服务: ```bash systemctl restart docker ``` 3. **为XFS启用pquota挂载选项** - 若文件系统非XFS,需重新格式化或调整分区(操作前备份数据)。 - 若已为XFS,但未启用`pquota`: ```bash umount /var/lib/docker mount -o rw,pquota /dev/your_disk_partition /var/lib/docker ``` 替换`your_disk_partition`为实际分区(如`/dev/sda1`)[^2]。 4. **永久生效配置** - 修改`/etc/fstab`,添加`pquota`选项: ```bash /dev/your_disk_partition /var/lib/docker xfs defaults,pquota 0 0 ``` 5. **验证配置** - 重新挂载并检查挂载选项: ```bash mount | grep /var/lib/docker ``` 输出应包含`pquota`。 - 尝试运行带`--storage-opt`的容器: ```bash docker run -dit --storage-opt size=1G alpine ``` --- #### 注意事项 - 修改文件系统或挂载选项可能导致数据丢失,操作前需备份。 - XFS的配额功能需内核支持,建议使用较新Linux发行版(如CentOS 7+/Ubuntu 18.04+)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让美好继续发生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值