docker相關概念筆記

mi_zy發表於2021-03-02

學習網站: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容器叢集的快速編排)命令都可以正常使用了,無需任何額外操作!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2760731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章