如何在 Windows 上的 Docker 中运行 Linux 库?
简介
本文将介绍 Linux 库。这些库的实际功能是什么,以及不同类型的库。然后,我们将了解如何使用下面提到的各种方法在 Windows 操作系统上使用这些 Linux 库。
什么是 Linux 库?
Linux 终端仅运行并遵循命令。它是一个“仅文本控制台”,响应终端命令。这些命令或函数的定义或代码存储在库中。
Linux 库的类型
可以根据可执行文件的性质对库进行分类。
静态库
动态库
静态库 - 命令及其定义包含在可执行文件中。
动态库 - 命令及其定义未绑定在可执行文件中。命令的定义不在可执行文件中,只有命令存在。
方法
有多种方法或途径可以在 Windows 主机上使用 Linux 库。其中一些列在下面。
在 Windows 主机上使用 Docker Desktop。
在 Windows 主机上使用虚拟机。
在 Windows 主机上使用 WSL(适用于 Linux 的 Windows 子系统)。
这里我们将实现各种 Linux 库和软件包的执行。
Docker Desktop
它是一个 Windows 桌面应用程序,用于在 Windows 平台上运行 Docker 容器。它适用于 Apple、Linux 和 Windows。
步骤 1 - 打开 Docker Desktop 应用程序
我们可以通过两种方式创建、运行、停止、销毁和管理容器。一种是使用此“桌面版本”,或者我们可以使用“Windows 终端”。这里我们将使用 Windows 终端进行演示。
步骤 2 - 从开始菜单打开终端。如果未安装,请使用 Microsoft Store 安装“Windows 终端”。使用命令“docker --version”检查 docker 版本。
示例
$docker --version
输出
Docker version 20.10.17, build 100c701
步骤 3 - 运行 Ubuntu 容器和命令
现在在 Docker 容器内运行 Ubuntu 镜像。然后,进入此容器以执行 Linux 命令。
PS C:\Users\HP> docker run -itd --name cont1 ubuntu 36a15a62f09afd3cf8837807bc99a9414dc4dc16ac411f245550823444c00651 PS C:\Users\HP> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 36a15a62f09a ubuntu "bash" 7 seconds ago Up 4 seconds cont1 PS C:\Users\HP> docker exec -it cont1 bash root@36a15a62f09a:/# pwd / root@36a15a62f09a:/# whoami root root@36a15a62f09a:/# ls bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var root@36a15a62f09a:/# which ls /usr/bin/ls
因此,我们能够在 Windows 上的 Docker 中运行 Linux 库。
虚拟机
我们可以使用虚拟机来安装 Linux 发行版,然后在其上运行 Docker 容器,而不是使用 Docker Desktop。安装虚拟化工具,我们将使用 Oracle VM VirtualBox Manager。创建一个 Ubuntu 虚拟机并启动它。
步骤 1 - 启动 Ubuntu 虚拟机
虚拟机启动后,它将为 Ubuntu 虚拟机打开一个新的显示窗口。
步骤 2 - 打开 Linux 终端并运行 Docker 容器。
hemant@hemant-VirtualBox:~$ docker run -itd --name busybox_cont busybox 5836441ac4def5b76cc92718f5e6451f91c1a9a1bca4b4a244092e5e31083279 hemant@hemant-VirtualBox:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5836441ac4de busybox "sh" 5 seconds ago Up 3 seconds busybox_cont
步骤 3 - 在这里执行 Linux 命令。
hemant@hemant-VirtualBox:~$ docker exec -it busybox_cont sh / # ls bin dev etc home proc root sys tmp usr var / # pwd / / # date Thu Dec 8 04:45:16 UTC 2022 / # which date /bin/date
WSL:适用于 Linux 的 Windows 子系统
WSL 是微软的产品。这是一个在微软架构上无缝运行的 Linux 内核。
步骤 1 - 从 Microsoft Store 安装它
在 Microsoft Store 中搜索 WSL,下载并安装它。
使用以下 PowerShell 命令在 WSL 上安装 Ubuntu。
$ wsl --install -d ubuntu
现在您可以通过搜索“Ubuntu”从开始菜单启动应用程序。
步骤 2 - 我们已安装适用于 Ubuntu 的 WSL。现在运行 Linux 库命令。
hemant@DESKTOP-G29Q9GU:~$ pwd /home/hemant hemant@DESKTOP-G29Q9GU:~$ date Thu Dec 8 10:34:53 IST 2022 hemant@DESKTOP-G29Q9GU:~$ which date /usr/bin/date hemant@DESKTOP-G29Q9GU:~$ which ls /usr/bin/ls hemant@DESKTOP-G29Q9GU:~$ whatis ls ls (1) - list directory contents hemant@DESKTOP-G29Q9GU:~$ whatis date date (1) - print or set the system date and time hemant@DESKTOP-G29Q9GU:~$ whatis wget wget (1) - The non-interactive network downloader.
结论
因此,在本文中,我们能够使用 WSL、VM 和 Docker Desktop 等各种方法在 Windows 系统上执行 Linux 库命令。