如何在没有 Docker Desktop 的情况下在 Windows 上安装 Docker CLI
在本文中,我们将探讨如何在 Windows 上安装和配置 Docker CLI,而无需 Docker Desktop。虽然 Docker Desktop 是开发环境中管理 Docker 容器的便捷且流行的工具,但在某些情况下,我们更倾向于或需要更轻量级或更具体的替代方案。无论是由于许可限制、最低资源需求还是个人偏好,仅安装 Docker CLI 都是理想的解决方案。我将指导您完成设置 Windows 环境以使用 Docker CLI 的必要步骤,充分利用 WSL 2(Windows Subsystem for Linux 版本 2)的功能,并且无需 Docker Desktop 的开销。这不仅可以让您更精细地控制 Docker 容器,还可以优化计算机上的资源使用情况。
安装的初步步骤
以下步骤已在 Windows 10 上测试过,但我认为它们在 Windows 11 上也同样有效。
首先要做的是安装 WSL,为此,打开 PowerShell 控制台并输入以下命令。
wsl --install
完成上一步后,需要重新启动操作系统。
注意:正如我所读,以下命令执行相同的操作,但在完成必要的安装后还会重新启动计算机。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
计算机重新启动后,将打开如下窗口:
等待一段时间后,将出现一条英文消息,提示您输入 Linux 用户的用户名,并要求输入密码。请仔细记下您的用户名和密码,因为我们稍后会需要它们。
一旦成功完成,就可以开始安装 Docker CLI,我们将位于 Linux 发行版的控制台中。
注意:请务必记住,在撰写本教程时,默认安装的发行版是 Ubuntu 22。
到达这一点后,要做的第一件事就是使用以下命令更新发行版的存储库和程序:
sudo apt update && sudo apt upgrade
此操作将请求我们分配给用户的密码。
注意:不要忘记说“是”(按 Y)来确认您要继续安装更新。
添加官方 Docker CLI 存储库
更新完成后,我们将运行以下命令来执行 Docker CLI 之前的一些必要的安装。
sudo apt -y install apt-transport-https ca-certificates curl gnupg lsb-release
之后,我们将运行以下命令为 Docker CLI 存储库添加必要的签名。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
现在是时候使用以下命令在 Ubuntu 中添加 Docker CLI 存储库以便进行后续安装。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker CLI
由于我们现在已经准备好 Docker CLI 存储库,现在是时候使用以下命令执行所需的安装了:
sudo apt update && sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker docker-compose
此时,我们已经在 WSL 中安装了 Docker CLI,让我们使用以下命令对其进行测试:
docker --version
docker-compose --version
我们应该得到类似于下图的响应:
如何在没有 root 用户的情况下运行 Docker
现在我们将创建docker
组并将我们的用户添加到该组,以便我们的用户无需以身份运行命令即可运行容器root
。
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
注意:当你尝试创建 docker 组时,你可能会收到一条消息,提示该组已存在。如果出现这种情况,请不要担心,继续操作即可。
现在我们需要做的是启动 Docker 并验证它是否正常工作,为此我们将使用以下命令:
sudo service docker start
sudo service docker status
docker run hello-world
运行该sudo service docker status
命令时,您将获得如下图像:
要退出,请按 Q 键
使用该docker run hello-world
命令时,您可能会收到如下图所示的消息:
不要忘记运行以下命令,然后再次运行 Docker hello-world:
newgrp docker
现在,如果一切顺利,运行 Docker hello-world 时您应该会得到如下图像:
通过我们之前所做的一切,现在是时候通过 PowerShell 在 Windows 中“本地”完成这项工作了。
PowerShell 控制台中的 Docker
现在 Docker 已经安装完毕,是时候让它在 PowerShell 控制台中运行了。目前,Docker 运行良好,但只在我们的 WSL 控制台中运行。
打开 PowerShell 控制台时,我们可以使用以下命令:
wsl docker --version
wsl docker-compose --version
我们的想法是,我们可以使用这些命令,但不使用 wsl 前缀。为此,我们需要修改Microsoft.PowerShell_profile.ps1
文件,但要知道在哪里创建它,我们应该在 PowerShell 控制台中运行以下命令:
echo $PROFILE
正如您在上图中所见,它显示了一个路径,如果您检查该路径,它可能不存在。好吧,我们必须创建这些文件夹和文件本身。完成后,您应该在文件中输入以下文本:
Function Start-WslDocker {
wsl docker $args
}
Function Start-WslDockerCompose {
wsl docker-compose $args
}
Set-Alias -Name docker -Value Start-WslDocker
Set-Alias -Name docker-compose -Value Start-WslDockerCompose
完成上述操作后,不要忘记关闭 PowerShell 控制台并重新打开它们,以便它们能够应用更改。这样,我们就可以在 PowerShell 控制台中正常运行以下 Docker 命令了:
docker --version
docker ps
docker-compose --version
视觉经理
如果您不喜欢从控制台管理 Docker,但又渴望使用 Docker Desktop 风格的可视化管理器,那么我有两个非常强大且免费的解决方案,可供个人和商业使用。
Portainer CE(社区版)是一个轻量级的容器化应用服务交付平台,有助于管理 Docker、Swarm、Kubernetes 和 ACI 环境。这是一个由社区支持的开源项目,为企业和个人用户提供免费选项。
Lazydocker是一个简洁的 Docker 和 Docker-compose 终端 UI,使用 Go 语言编写,并基于 gocui 库。其目标是简化 Docker 管理,让那些喜欢使用终端的用户更容易上手,减少繁琐的操作。它清晰地呈现了 Docker 容器、镜像和卷的概览,用户只需按键或点击即可执行常用操作,使其成为个人和企业用户的理想之选。作为一个开源项目,Lazydocker 是一个免费的选择,它简化了 Docker 管理,是个人和企业用户的理想之选。
最终结论
可以看到,Docker CLI 可以在 Windows 中管理,不需要依赖 Docker Desktop,轻松通过控制台进行。
参考
- 如何在 Windows 上安装 Docker(无需 Docker Desktop)
- 在 Windows 11 上不使用 Docker Desktop 使用 Docker 和 Kubernetes
- 如何在没有 Docker Desktop 的情况下在 Windows 上运行 Docker
- 如何使用 WSL 在 Windows 上安装 Linux
- 在 Ubuntu 上安装 Docker 引擎
- 在 Ubuntu 22.04 上安装 Lazydocker
- 如何在 Docker 上安装 Portainer 2.0