Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 127.0.0.1:53: read udp 127.0.0.1:50865->127.0.0.1:53: read: connection refused
时间: 2025-03-23 11:12:17 浏览: 224
### 解决方案
当遇到 Docker 连接 `registry-1.docker.io` 出现 DNS 解析问题时,通常是因为本地系统的 DNS 配置不正确或无法正常工作。以下是详细的解决方案:
#### 修改主机的 DNS 设置
可以通过修改 `/etc/resolv.conf` 文件来指定可靠的公共 DNS 服务器,例如 Google 的 `8.8.8.8` 或者国内常用的 `114.114.114.114`。
具体操作如下:
1. 打开终端并编辑 `/etc/resolv.conf` 文件:
```bash
sudo nano /etc/resolv.conf
```
2. 添加以下内容到文件顶部:
```plaintext
nameserver 8.8.8.8
nameserver 114.114.114.114
```
注意:某些情况下,该文件可能被动态覆盖。如果发现更改无效,则可以尝试通过网络管理工具设置静态 DNS[^1]。
#### 使用 Docker 自带的 DNS 配置功能
另一种方法是让 Docker 使用自定义的 DNS 服务器而不是依赖于宿主机的配置。这可以在启动 Docker 守护进程时完成。
##### 方法一:临时测试
运行容器时手动指定 DNS 参数:
```bash
docker run --dns=8.8.8.8 --dns=114.114.114.114 -d -p 3018:3000 --name test imagename/imagename
```
##### 方法二:永久生效
为了使此更改适用于所有容器,需调整 Docker 的守护程序配置文件(通常是 `/etc/docker/daemon.json`)。如果没有该文件则创建它,并加入以下内容:
```json
{
"dns": ["8.8.8.8", "114.114.114.114"]
}
```
保存后重启 Docker 服务以应用新设置:
```bash
sudo systemctl restart docker
```
以上两种方式都可以有效解决由于错误的DNS而导致的连接失败问题[^4]。
### 测试验证
执行以下命令确认是否能够成功拉取镜像:
```bash
docker pull ubuntu:16.04
```
如果不再显示类似的错误消息,则说明问题已得到妥善处理。
阅读全文
相关推荐













