[深度学习] docker image list request returned Internal Server Error for API route and version

文章讲述了用户在Windows11环境下使用PowerShell执行`dockerimagelist`命令时遇到500InternalServerError,随后通过运行DockerDiagnose工具进行了一系列诊断,发现与WSL2、DockerAPI版本兼容性和网络设置等问题有关。
摘要由CSDN通过智能技术生成

在 powershell 里执行docker image list 报错

PS C:\Users\Thomas> docker image list
request returned Internal Server Error for API route and version http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/json, check if the server supports the requested API version

执行

C:\Users\Thomas>cmd.exe /k "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check
Starting diagnostics

[2024-04-17T14:30:53.028434600Z][com.docker.diagnose.exe.ipc][I] ipc.NewClient: 19986db9-diagnose -> \\.\pipe\dockerBackendApiServer BackendAPI
[2024-04-17T14:30:53.040204600Z][com.docker.diagnose.exe.ipc][I] (5ffdbf0d) 19986db9-diagnose C->S BackendAPI POST /idle/make-busy
[2024-04-17T14:30:53.042473500Z][com.docker.diagnose.exe.ipc][I] (5ffdbf0d) 19986db9-diagnose C<-S 7393654c-BackendAPI POST /idle/make-busy (2.2689ms): 0xc00063a3d0
[2024-04-17T14:30:54.043514600Z][com.docker.diagnose.exe.ipc][I] (7d42eeac) 19986db9-diagnose C->S BackendAPI GET /idle
[2024-04-17T14:30:54.047628300Z][com.docker.diagnose.exe.ipc][I] (7d42eeac) 19986db9-diagnose C<-S 7393654c-BackendAPI GET /idle (2.8594ms): {"apisInFlight":{},"booted":false,"busyReason":["timed activities: map[/idle/make-busy:28.9961123s]"],"containers":0,"idle":"bool","kubernetesEnabled":false,"reduced":false,"services":0,"timedActivities":{"/idle/make-busy":"float64"},"vmPaused":false,"vmRunning":true,"vmStopped":false,"windowsContainers":false}
[PASS] DD0027: is there available disk space on the host?
[SKIP] DD0028: is there available VM disk space?
[SKIP] DD0002: does the bootloader have virtualization enabled?
[SKIP] DD0018: does the host support virtualization?
[PASS] DD0001: is the application running?
[SKIP] DD0022: is the Virtual Machine Platform Windows Feature enabled?
[SKIP] DD0021: is the WSL 2 Windows Feature enabled?
[PASS] DD0024: is WSL installed?
[FAIL] DD0025: are WSL distros installed? WSL Distribution docker-desktop is missing
[PASS] DD0026: is the WSL LxssManager service running?
[FAIL] DD0029: is the WSL 2 Linux filesystem corrupt? prereq failed: are WSL distros installed?
[FAIL] DD0035: is the VM time synchronized? prereq failed: are WSL distros installed?
[FAIL] DD0017: can a VM be started? prereq failed: are WSL distros installed?
[FAIL] DD0016: is the LinuxKit VM running? prereq failed: can a VM be started?
[FAIL] DD0011: are the LinuxKit services running? prereq failed: is the LinuxKit VM running?
[FAIL] DD0004: is the Docker engine running? prereq failed: are the LinuxKit services running?
[PASS] DD0015: are the binary symlinks installed?
[FAIL] DD0031: does the Docker API work? prereq failed: is the Docker engine running?
[PASS] DD0013: is the $PATH ok?
[FAIL] DD0003: is the Docker CLI working? prereq failed: is the Docker engine running?
[FAIL] DD0005: is the user in the docker-users group? prereq failed: is the LinuxKit VM running?
[FAIL] DD0038: is the connection to Docker working? prereq failed: is the Docker engine running?
[FAIL] DD0014: are the backend processes running? prereq failed: is the LinuxKit VM running?
[FAIL] DD0007: is the backend responding? prereq failed: are the backend processes running?
[FAIL] DD0009: is the vpnkit API responding? prereq failed: are the backend processes running?
[FAIL] DD0010: is the Docker API proxy responding? prereq failed: are the backend processes running?
[SKIP] DD0006: is the Docker Desktop Service responding?
[FAIL] DD0030: is the image access management authorized? prereq failed: is the Docker engine running?
[WARN] DD0033: does the host have Internet access? unable to fetch http://docker.com/
[PASS] DD0002: does the bootloader have virtualization enabled?
[PASS] DD0018: does the host support virtualization?
[PASS] DD0001: is the application running?
[PASS] DD0022: is the Virtual Machine Platform Windows Feature enabled?
[PASS] DD0021: is the WSL 2 Windows Feature enabled?
[PASS] DD0024: is WSL installed?
[WARN] DD0025: are WSL distros installed? WSL Distribution docker-desktop is missing
[PASS] DD0026: is the WSL LxssManager service running?
[WARN] DD0029: is the WSL 2 Linux filesystem corrupt? prereq failed: are WSL distros installed?
[WARN] DD0035: is the VM time synchronized? prereq failed: are WSL distros installed?
[WARN] DD0017: can a VM be started? prereq failed: are WSL distros installed?
[WARN] DD0016: is the LinuxKit VM running? prereq failed: can a VM be started?
[WARN] DD0011: are the LinuxKit services running? prereq failed: is the LinuxKit VM running?
[WARN] DD0004: is the Docker engine running? prereq failed: are the LinuxKit services running?
[PASS] DD0015: are the binary symlinks installed?
[WARN] DD0031: does the Docker API work? prereq failed: is the Docker engine running?
[WARN] DD0032: do Docker networks overlap with host IPs? prereq failed: does the Docker API work?

Please note the following 12 warnings:

1 : The check: does the host have Internet access?
    Produced the following warning: unable to fetch http://docker.com/

If the host does not have Internet access then containers will also not have Internet access.

The lack of Internet access could be caused by
- physical disconnection: check your ethernet cable or Wifi network
- the local network firewall policy: check with your IT department if access to docker.com is expected to work
- a VPN (or lack of one): try again with or without the VPN running

2 : The check: are WSL distros installed?
    Produced the following warning: WSL Distribution docker-desktop is missing

The Docker engine uses several WSL distributions. Therefore these must be installed.

3 : The check: are WSL distros installed?
    Produced the following warning: WSL Distribution docker-desktop is missing

The Docker engine uses several WSL distributions. Therefore these must be installed.

4 : The check: is the WSL 2 Linux filesystem corrupt?
    Produced the following warning: prereq failed: are WSL distros installed?

If the WSL 2 Linux filesystem is corrupt then Docker Desktop cannot start.
There is a known issue fixed in Windows Insider builds which can cause filesystem corruption, see:
https://github.com/microsoft/WSL/issues/5895 .

Try running "wsl --shutdown" to stop your WSL Virtual Machine. When it restarts it will
run a filesystem check and hopefully fix the problem.


5 : The check: are WSL distros installed?
    Produced the following warning: WSL Distribution docker-desktop is missing

The Docker engine uses several WSL distributions. Therefore these must be installed.

6 : The check: is the VM time synchronized?
    Produced the following warning: prereq failed: are WSL distros installed?

The VM time must be in sync with the host, otherwise Docker Desktop will not work correctly.

Ensure you are using a modern WSL 2 kernel (see "wsl --update"). If this problem persists,
try manually synchronizing the VM clock with "sudo hwclock -s".

7 : The check: can a VM be started?
    Produced the following warning: prereq failed: are WSL distros installed?

The Docker engine runs inside a Linux VM. Therefore we must be able to start Virtual Machines.

8 : The check: is the LinuxKit VM running?
    Produced the following warning: prereq failed: can a VM be started?

The Docker engine runs inside a Linux VM. Therefore the VM must be running.

9 : The check: are the LinuxKit services running?
    Produced the following warning: prereq failed: is the LinuxKit VM running?

The Docker engine runs inside a Linux VM as a service. Therefore the services must have started.

10 : The check: is the Docker engine running?
    Produced the following warning: prereq failed: are the LinuxKit services running?

The Docker engine manages all containers and images on the host. Check the dockerd.log to see why it failed to start.

11 : The check: does the Docker API work?
    Produced the following warning: prereq failed: is the Docker engine running?

If the Docker API is not available from the host then Docker Desktop will not work correctly.

12 : The check: do Docker networks overlap with host IPs?
    Produced the following warning: prereq failed: does the Docker API work?

If the subnet used by a Docker network overlaps with an IP used by the host, then containers
won't be able to contact the overlapping IP addresses.

Try configuring the IP address range used by networks: in your docker-compose.yml.
See https://docs.docker.com/compose/compose-file/compose-file-v2/#ipv4_address-ipv6_address


Please investigate the following 1 issue:

1 : The test: are WSL distros installed?
    Failed with: WSL Distribution docker-desktop is missing

The Docker engine uses several WSL distributions. Therefore these must be installed.

参考:

https://www.cnblogs.com/rgqancy/p/17806019.html

【Docker Desktop】Windows11家庭版安装docker desktop和WSl2(Ubuntu22.04)并完成迁移,配置国内镜像_docker win11配置和使用-CSDN博客 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值