学习网站:docker run -dp 8080:80 --name docker-test docker/getting-started
localhost:8080即可看到学习页面
1、"Bash coming to Windows"—— “Windows Subsystem for Linux”
https://ubuntu.com/blog/ubuntu-on-windows-the-ubuntu-userspace-for-windows-developers
pressed the Windows key, typed “bash“, hit enter,With full access to all of Ubuntu user space, All of your Windows drives, like C: are mounted read/write directly under /mnt. And, vice versa, you can see all of your Ubuntu filesystem from Windows Explorer in C:UsersKirklandAppDataLocalLxssrootfs
-
不是在虚拟机上运行Ubuntu, WSL根本不是虚拟机。在hypervisor下的VM中没有Linux内核引导。这只是Ubuntu的用户空间。
-
也不是一个容器中的Ubuntu,WSL不是一个容器。它是直接在Windows中运行的本地Ubuntu二进制文件。
-
也不是Cygwin,包括从源代码重新编译以在Windows中本机运行的开源实用程序。这里,我们讨论的是一位一位的,直接在Windows中运行的Ubuntu ELF二进制文件的校验和。
-
这是Linux仿真器之类的东西?微软的一个sharp开发团队一直在努力调整微软的一些研究技术,以便基本上将Linux系统调用实时转换为Windows系统系统调用。Linux的极客们可以把它看作是“wine”的反义词,即在Windows上运行的Ubuntu二进制文件。微软称之为“ Windows Subsystem for Linux”:WSL。
WSL2 基于
Hyper-V
功能的子集提供了“真正的 Linux 内核”
2、删除Ubuntu后,win10的Docker Desktop切换Switch to Linux containers,原来的镜像和容器还在!
按下Windows key, 键入“bash“:
$ uname -a
MINGW64_NT-10.0-19042 TABLET-i7 3.1.7-340.x86_64 2020-10-23 13:08 UTC x86_64 Msys
显示同 Docker Desktop中内容一致的镜像文件。
$ docker images ( 或 在PowerShell直接输入docker images,内容一样)
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 d54bd1054823 4 days ago 449MB
zabbix/zabbix-web-nginx-mysql latest ce4acaca7476 8 days ago 164MB
zabbix/zabbix-agent latest 2a12194ead0b 8 days ago 19.2MB
docker/desktop-kubernetes kubernetes-v1.19.3-cni-v0.8.5-critools-v1.17.0-debian bb2106081d17 3 months ago 285MB
zabbix/zabbix-appliance latest 663a9b177b54 12 months ago 383MB
但是,通过在PowerShell输入bash
PS C:\windows\system32> bash
TABLET-i7:/mnt/host/c/windows/system32# uname -a
Linux TABLET-i7 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 Linux
TABLET-i7:/mnt/host/c/windows/system32# docker
bash: docker: command not found
说明Docker Desktop中的镜像不在 PowerShell的bash这里。而 在PowerShell直接输入docker images,显示内容同上。
但是下图的 Ubuntu不在了。
提示没有WSL2 distro, 请将WSL1转换为WSL2, 或者 安装new distro(就是由于删除 Ubuntu消失的 Ubuntu),点击“More info”进入: docs.docker.com/docker-for-windows/wsl/( Docker Desktop WSL 2 backend)
文章是关于: Docker Desktop WSL 2 backend
Windows Subsystem for Linux(WSL)2引入了一个重要的体系结构更改,因为它是由Microsoft构建的完整Linux内核,允许 Linux容器在没有仿真的情况下本机运行。 随着 Docker Desktop在WSL2上运行,用户可以利用Linux工作区,避免同时维护Linux和Windows构建脚本。 此外,WSL2还改进了文件系统共享、引导时间,并允许Docker桌面用户访问一些很酷的新功能。
——>zhuanlan.zhihu.com/p/144583887
从输出信息中可以看到,
docker-desktop
的WSL版本已经是
2
了。
PS C:\windows\system32> wsl --list --verbose
NAME STATE VERSION
* docker-desktop Running 2
docker-desktop-data Running 2
按上图勾选“Enable integration with my default WSL distro”设置并重启 Docker,然后进入 WSL2,你会发现docker命令和docker-compose(Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排)命令都可以正常使用了,无需任何额外操作!