gpt4 book ai didi

docker - 如何访问 Docker 桌面使用的 wsl2?

转载 作者:行者123 更新时间:2023-12-05 03:32:33 25 4
gpt4 key购买 nike

我想使用 rsync 将 Docker 镜像从我的 Windows10 PC 传输到另一台 Fedora。我不能使用 WSL,我需要 WSL2,正如编译器所说:

ubu@DESKTOP-QL4RO3V:/mnt/c/Windows/system32$ docker images                                                                                                                                                                                      
The command 'docker' could not be found in this WSL 1 distro.
We recommend to convert this distro to WSL 2 and activate
the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/

但我认为,因为我有 Docker 桌面,所以它使用的是 WSL2:

enter image description here

但我不知道如何运行我自己使用的 wsl2 Docker。

PS C:\Users\antoi> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 1
docker-desktop-data Running 2
docker-desktop Running 2

最佳答案

Docker 桌面图像、容器和卷存储在特殊的 docker-desktop-data 中。如 this Super User question 中所述我的回答是,docker-desktop-data 不可启动(按设计)。

如果您真的必须进入文件系统,我已经在那里记录了一种方法。但一般来说,您应该需要这样做。

相反,使用普通的 docker 命令(来自 WSL2、PowerShell 或 CMD)将图像保存到 tar 文件,如 this answer 中所述。 :

docker save -o <image.tar> <image_name>

然后使用rsync 或其他方式传输文件,并在目标机器上通过以下方式导入:

docker load -i <image.tar>

同样,它来自 WSL2、PowerShell 或 CMD。但就您而言,Ubuntu 实例是 WSL1。这对 Docker 不起作用。您需要将其转换为 WSL2。

以防万一,我总是建议在转换之前备份您的实例。来自 PowerShell:

wsl --export Ubuntu ubuntu_backup.tar

然后,一旦有了备份:

wsl --set-version Ubuntu 2
wsl --set-default-version 2 # if desired

转换后,在 Ubuntu 中运行 docker 时应该不会看到该错误。


旁注——Docker Desktop 将 docker 命令“注入(inject)”到您在“设置”的“WSL 集成”选项卡中设置的任何 WSL2 实例中。这应该默认为您的“默认”WSL2 实例,它(从您的屏幕截图中)是 Ubuntu。 “真正的”docker 命令在 docker-desktop 中,但它已为您链接到 Ubuntu。

因此默认情况下,您应该在 Ubuntu 实例中直接拥有所有 docker 功能。 docker-desktopdocker-desktop-data 都不是为最终用户直接使用而设计的。

关于docker - 如何访问 Docker 桌面使用的 wsl2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70449927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com