docker相关概念笔记

学习网站: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容器集群的快速编排)命令都可以正常使用了,无需任何额外操作!


请使用浏览器的分享功能分享到微信等