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

Ubuntu22.04下Docker构建DNS异常与镜像权限隔离问题求助

Ubuntu 22.04下Docker构建DNS与权限问题解决

问题背景

在Ubuntu 22.04执行以下命令构建Docker镜像:

docker build -t myname ./

报错:

Temporary failure resolving 'archive.ubuntu.com'

尝试操作后仍存在矛盾:

  • 创建/etc/docker/daemon.json配置DNS,无效
  • 加--network host参数执行docker build,依旧报错
  • 使用sudo docker build --network host -t myname ./成功构建,但普通用户执行docker images无结果,必须用sudo才能查看镜像,即使已赋予用户超级用户权限。

解决方案

1. 修复普通用户Docker的DNS问题

步骤1:确保用户加入Docker用户组

执行命令检查当前用户所属组:

groups $USER

如果输出中没有docker组,执行:

sudo usermod -aG docker $USER

执行后重新登录系统,或执行以下命令让权限立即生效:

newgrp docker

步骤2:配置Docker守护进程DNS

编辑/etc/docker/daemon.json文件(不存在则创建):

sudo nano /etc/docker/daemon.json

添加以下内容(使用公共DNS服务器):

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

保存后重启Docker服务:

sudo systemctl restart docker

步骤3:验证主机DNS解析

先确保主机本身能正常解析域名:

ping archive.ubuntu.com

如果主机也无法解析,编辑/etc/resolv.conf添加DNS服务器:

sudo nano /etc/resolv.conf

添加:

nameserver 8.8.8.8
nameserver 8.8.4.4

2. 解决镜像可见性问题

完成上述用户组配置后,普通用户应能直接通过docker images查看镜像。若仍无法查看:
检查Docker存储目录权限:

ls -ld /var/lib/docker/

确保目录所属组为docker,权限类似drwx--x--x 13 root docker 4096 ...。若权限不符,执行:

sudo chown -R root:docker /var/lib/docker/

内容的提问来源于stack exchange,提问作者최기창

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:32:40