Windows 上的 Docker 问题 [version `GLIBC_2.32' not found] [version `GLIBC_2.34' not found]
我正在遵循使用 WSL2 在 Windows 上安装 Docker 的初学者教程。
这是本课程的第一个教程/讲座之一。
https://www.udemy.com/course/docker-and-kubernetes-the-complete-guide/
到目前为止我已经按照指示做了所有事情。要验证我的 docker 设置是否正常,
最后教程告诉我,在我的默认的 WSL Linux Distro(也就是 Ubuntu,就是这么来的)
中运行docker
。
所以我运行了docker
,但出现了这个错误。
/mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli)
/mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli)
尝试修复错误,我升级了所有可升级的 Linux 软件包。
还是没有运气。好像说它需要比我的更高版本的 GLIBC。
而且,我认为没有办法进一步升级我的 GLIBC 版本。正确的?
我应该怎么做才能解决这个问题?
root@LAPTOP1:/mnt/c/Users/user01# docker
/mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli)
/mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli)
root@LAPTOP1:/mnt/c/Users/user01# ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.14) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
root@LAPTOP1:/mnt/c/Users/user01# apt-cache policy libc6
libc6:
Installed: 2.31-0ubuntu9.14
Candidate: 2.31-0ubuntu9.14
Version table:
*** 2.31-0ubuntu9.14 500
500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
100 /var/lib/dpkg/status
2.31-0ubuntu9 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
root@LAPTOP1:/mnt/c/Users/user01# apt-get install libc6
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.14).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
root@LAPTOP1:/mnt/c/Users/user01#
这些是我的发行版。
PS C:\Users\user01> wsl --list --verbose
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop Running 2
docker-desktop-data Running 2
这是我的 WSL Ubuntu 版本。
root@LAPTOP1:/mnt/c/Users/user01# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
我按照此处给出的说明升级了我的 Ubuntu 版本。
https://askubuntu.com/a/1428481
现在我的版本是22.04.3 LTS
。
root@LAPTOP1:/mnt/c/Users/user01# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
root@USLAP3XP7G63:/mnt/c/Users/user01#
看来解决了我的问题。现在,当我从 Ubuntu 命令提示符中运行 docker
时,我没有收到 GLIBC 错误。
我不知道为什么默认情况下 WSL2 不直接安装这个版本22.04.3 LTS
。不确定稍后必须手动升级它有什么意义。
这个问题应该在下一个补丁版本(本周或本月)中修复 - 猜测是 4.26.1 或类似版本。 在这里查看一些详细信息: https://github.com/docker/for-win/issues /13824。
作为将 WSL2 发行版升级到 22.04 的另一种解决方法,您可以尝试使用 PowerShell 中的 docker 命令。图像和容器的存储是共享的,因此稍后您应该能够从 WSL2 继续您的工作
只需输入终端:
sudo do-release-upgrade