我想用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:
但我不知道如何运行用于我自己的wsl2 Docker。
PS C:\Users\antoi> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 1
docker-desktop-data Running 2
docker-desktop Running 2
发布于 2021-12-22 06:27:38
码头桌面图像、容器和卷存储在特殊的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。这对码头工人不起作用。您需要将其转换为WSL2。
以防万一,在转换实例之前,我总是建议备份它。来自PowerShell:
wsl --export Ubuntu ubuntu_backup.tar
那么,一旦您有了备份:
wsl --set-version Ubuntu 2
wsl --set-default-version 2 # if desired
转换后,在Ubuntu中运行docker
时不应该看到该错误。
附带注意-- Desktop将docker
命令“注入”到设置中"WSL“选项卡中设置的任何WSL2实例中。这应该默认为您的“默认”WSL2实例,它(从您的屏幕截图中)是Ubuntu。“真正的”docker
命令在docker-desktop
中,但是它为您链接到Ubuntu。
因此,默认情况下,应该将所有docker
功能直接放在Ubuntu
实例中。docker-desktop
和docker-desktop-data
的设计都不适合最终用户直接使用.
发布于 2022-06-16 09:46:23
您可以使用以下命令访问停靠桌面WSL
wsl -d docker-desktop
https://stackoverflow.com/questions/70449927
复制