解决方法(所有操作都是在 root 用户下进行操作,如果不是 root 用户请在输入命令前加上 sudo
):
-
输入这段命令
vim /etc/systemd/resolved.conf
,将 DNS 注释去掉,并输入8.8.8.8
; -
然后输入
resolvectl status
,查看当前 DNS 是否改成8.8.8.8
; 重新启动 Docker
systemctl restart docker
;输入
docker login -u 用户名
,然后再输入密码即可登录成功。
更多:
- 在 Ubuntu 22.0.4 中的使用
resolvectl
代替了systemd-resolve
命令; - 在 Google 答案中需要更改
/etc/resolv.conf
文件,在实际执行中修改完成之后,进行 Docker 重启会发现这个文件被重新覆盖了。原因是因为/etc/resolv.conf
这个文件是一个链接文件(可通过ll /etc/resolv.conf
进行查看它的链接对象是谁); - 更多关于更改的原因可以参考此网页。