赞
踩
安装了Docker的Windows桌面环境,机器重启后下载镜像返回server misbehaving
的错误,修改配置,成功解决。
安装了Docker的Windows桌面环境,在WSL(Windows Subsystem for Linux)下载各种镜像没有任何问题,但是在机器重启后碰到以下问题不能下载镜像的问题,这是在编译的的时候需要下载docker.io/library/openjdk:latest
这个镜像。如果是直接下载镜像也会碰到同样的问题,机器重启之前没有做任何改动。
john@LAPTOP-XXYYZZ:~$ docker build -t test_application /mnt/c/John/test_application/ [+] Building 8.1s (3/3) FINISHED docker:default => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 174B 0.0s => ERROR [internal] load metadata for docker.io/library/openjdk:latest 8.0s ------ > [internal] load metadata for docker.io/library/openjdk:latest: ------ Dockerfile:1 -------------------- 1 | >>> FROM openjdk:latest 2 | ADD test_application-0.0.1.jar test_application-0.0.1.jar 3 | EXPOSE 8080 -------------------- ERROR: failed to solve: openjdk:latest: failed to do request: Head "https://registry-1.docker.io/v2/library/openjdk/manifests/latest": dial tcp: lookup registry-1.docker.io on 192.168.65.254:53: server misbehaving
网上提供了一些解决办法,例如重新安装同样版本的Docker应用,这是一个比较笨的办法,不推荐使用。
有解决办法是将DNS服务器设置成8.8.8.8
,似乎是正确的方向。
解决办法是在Docker安装的机器上修改resolv.conf
sudo vi /etc/resolv.conf
但是我的情况是WSL(Windows Subsystem for Linux)
的Ubuntu,并且使用Docker Desktop(Docker的桌面环境),完全不一样。
我的做法是,在Docker Desktop
中, 点Setting
-> Docker Engine
,修改以下:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
}
}
修改为以下,也就是添加了8.8.8.8
的DNS的服务器地址:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "dns": [ "8.8.8.8", "8.8.4.4" ], "experimental": false, "features": { "buildkit": true } }
到此问题解决!
Stackoverflow: Docker for windows: “server misbehaving” when trying to pull
Github: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.1:53: server misbehaving #1317
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。