本文最后更新于 2024年5月16日。
安装WSL
先安装WSL,管理员运行`wsl –install
(base) PS C:\Users\weiyo> wsl --install
正在安装: 虚拟机平台
已安装 虚拟机平台。
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
正在下载: WSL 内核
正在安装: WSL 内核
已安装 WSL 内核。
正在下载: GUI 应用支持
[====== 10.6% ]
(base) PS C:\Users\weiyo> wsl --install
由于需要重新启动系统,因此未执行任何操作。
(base) PS C:\Users\weiyo>
重启系统。
安装docker-desktop
然后在docker官网下载(https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe)windows客户端安装。
安装完成后系统托盘会出现docker图标。
命令行输入`docker version
C:\Users\weiyo>docker version
Client:
Cloud integration: v1.0.29
Version: 20.10.20
API version: 1.41
Go version: go1.18.7
Git commit: 9fdeb9c
Built: Tue Oct 18 18:28:44 2022
OS/Arch: windows/amd64
Context: default
Experimental: true
Server: Docker Desktop 4.13.0 (89412)
Engine:
Version: 20.10.20
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 03df974
Built: Tue Oct 18 18:18:35 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
出现docker版本信息,表明安装成功。
windows docker-tesktop数据目录
`\wsl.localhost\docker-desktop-data\data\docker\volumes\dc1>
(base) PS Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\docker-desktop-data\data\docker\volumes\dc1>
查看wls
情况:
(base) PS E:\docker\dc1> wsl --list -v
NAME STATE VERSION
* docker-desktop Running 2
docker-desktop-data Running 2
查看docker info
C:\Users\weiyo>docker info
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc., v0.9.1)
compose: Docker Compose (Docker Inc., v2.12.0)
dev: Docker Dev Environments (Docker Inc., v0.0.3)
extension: Manages Docker extensions (Docker Inc., v0.2.13)
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
scan: Docker Scan (Docker Inc., v0.21.0)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 1
Server Version: 20.10.20
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.10.16.3-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 7.619GiB
Name: docker-desktop
ID: KWST:JEOF:MTGP:DS5U:H4XM:4K66:2VV6:KLFU:CADN:6H63:WEXL:DQ5G
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5000
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
windows中docker根目录的问题
在浏览器访问以下指令可以进入.vhdx中
\\wsl$\docker-desktop
\\wsl$\docker-desktop-data
我们想要访问的是数据卷的位置
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
\\wsl$\docker-desktop-data
docker info中的根目录Docker Root Dir: /var/lib/docker
是docker直接主机的根目录
基于wsl的windows docker的文件目录
实际位置为`\wsl.localhost\docker-desktop-data\data\docker\volumes
(base) PS E:\docker\dc1> cd \\wsl.localhost\docker-desktop-data\data\docker\volumes
(base) PS Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\docker-desktop-data\data\docker\volumes> ls
目录: \\wsl.localhost\docker-desktop-data\data\docker\volumes
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/10/26 10:08 dc1_cloudreve
d----- 2022/10/26 10:08 dc1_uploads
d----- 2022/10/26 10:09 03661a451e56c705044921fab1de01f1f0b955b00ac8c15159b84b1da4f888a7
d----- 2022/10/26 10:09 2295aba62804537bbb98ccceed10439d3e639787f94fc8ac96d1c39f248b166c
-----l 2022/10/25 16:13 0 backingFsBlockDev
------ 2022/10/26 10:09 32768 metadata.db
Docker 镜像由 docker 自己的虚拟机管理。 “docker info”给出的路径 /var/lib/docker 是相对于 docker 的主机文件系统,而不是你的容器的文件系统。它们的挂载点不同。可以通过以下两种方式查看docker的宿主文件系统:
1. 您可以将主机文件系统挂载到容器目录。比如,
docker run -v /:/data -it ubuntu /bin/bash
此命令在 Ubuntu docker 映像中运行一个 shell,将 docker 的文件系统挂载到 /data 目录。在那里,您可以在 /data 下找到完整的文件系统,包括 ./var/lib/docker。如果需要,您可以在 shell 提示符下“chroot /data”以获得更好的视图。
2. 当您在 WSL2 中的发行版中启用 docker 时,您始终可以在您的发行版 /mnt 目录中检查您的容器。 Docker 已经为你挂载了一切。
/mnt/wsl/docker-desktop-data/data/docker
3. 如果你有足够的经验,你可能会在你的 Windows 目录中找到所有数据的虚拟磁盘的实际位置。
C:\Users\your_name\AppData\Local\Docker\wsl\data\
或者可能只是为了好玩:
\\wsl$\Ubuntu\mnt\wsl\docker-desktop-data\data\docker
很遗憾,我没有尝试深入了解它们。