简介
在本实验中,你将学习如何使用 docker desktop engine use
命令切换容器类型。首先,你将了解 Docker 引擎的作用以及如何检查当前容器类型。
接着,你将探索如何切换至 Windows 容器(在 Windows 系统上),然后再切换回 Linux 容器。本实验将通过 Docker CLI 为你提供管理容器环境的实践操作经验。
在本实验中,你将学习如何使用 docker desktop engine use
命令切换容器类型。首先,你将了解 Docker 引擎的作用以及如何检查当前容器类型。
接着,你将探索如何切换至 Windows 容器(在 Windows 系统上),然后再切换回 Linux 容器。本实验将通过 Docker CLI 为你提供管理容器环境的实践操作经验。
在这一步骤中,我们将了解 Docker 引擎的作用。Docker 是一个平台,允许你通过容器化技术自动化部署、扩展和管理应用程序。容器是一个标准的软件单元,它将代码及其所有依赖项打包,使应用程序能够在不同的计算环境中快速可靠地运行。
Docker 引擎是 Docker 的核心组件,它是一个客户端 - 服务器应用程序,包含以下主要部分:
dockerd
命令)长期运行的服务器程序docker
命令)CLI 通过 REST API 使用脚本或直接命令来控制 Docker 守护进程。许多其他 Docker 应用程序也使用底层 API 和 CLI。
在 LabEx 环境中,Docker 引擎已经安装并运行。你可以通过运行 docker info
命令来验证这一点。该命令会显示关于 Docker 安装的系统级信息。
docker info
你应该会看到类似以下的输出,显示 Docker 版本、存储驱动等详细信息:
Client:
Version: 20.10.21
API version: 1.41
Go version: go1.18.9
Git commit: baeda1f
Built: Tue Oct 25 18:01:17 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.18.9
Git commit: 305620d
Built: Tue Oct 25 17:59:50 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.10
GitCommit: b34a5c8e5367b9d7e345e9371193898cdce23f40
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
... (更多输出)
这个输出确认了 Docker 引擎正在运行,并提供了其配置的详细信息。理解 Docker 引擎是使用容器的第一步。
在这一步骤中,我们将检查 LabEx 环境中 Docker 引擎当前支持的容器类型。根据底层操作系统的不同,Docker 可以运行不同类型的容器。在 Linux 系统上,Docker 主要运行 Linux 容器;而在 Windows 系统上,Docker Desktop 允许在 Linux 容器和 Windows 容器之间切换。
在 LabEx 环境中,你运行的是 Linux 虚拟机,因此 Docker 引擎被配置为运行 Linux 容器。你可以通过再次查看 docker info
命令的输出结果来确认这一点,重点关注 OSType
字段。
docker info
在输出中,你应该能看到类似这样的信息:
OSType: linux
这表明 Docker 引擎当前配置为运行 Linux 容器,这是 Linux 系统上的默认且预期的行为。
为了进一步说明,让我们尝试运行一个简单的 Linux 容器。我们将使用 hello-world
镜像,这是一个非常小的镜像,仅打印一条消息后就会退出。首先,我们需要将该镜像拉取到本地机器。
docker pull hello-world
你应该能看到显示镜像正在被拉取和下载的输出。
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f5233545e4356188889a389e18b407cd9f61f46056b1e172b338cd91f09e9e4c
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
现在,使用 docker run
命令运行该容器。
docker run hello-world
你应该能看到类似以下的输出,这是 hello-world
容器打印的消息。
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub
(assuming it was not already locally available).
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
这确认了你可以在当前环境中成功运行 Linux 容器。
在这一步骤中,我们将讨论如何切换到 Windows 容器。请注意,此步骤仅适用于在 Windows 操作系统上运行 Docker Desktop 的情况。 LabEx 环境是 Linux 虚拟机,因此你无法在此实际执行此切换操作。不过,如果你在 Windows 上使用 Docker,理解这个概念很重要。
在 Windows 上,Docker Desktop 默认运行一个轻量级 Linux 虚拟机来托管 Docker 引擎并运行 Linux 容器。这是因为 Docker 引擎最初是为 Linux 设计的。然而,Windows 也支持运行原生的 Windows 容器。
如果你在安装了 Docker Desktop 的 Windows 机器上,通常可以通过右键点击系统托盘中的 Docker 图标并选择"切换到 Windows 容器"来完成切换。这个操作会重新配置 Docker 守护进程,使其使用 Windows 容器运行时而非 Linux 虚拟机。
切换到 Windows 容器后,你就可以拉取并运行为 Windows 构建的镜像,例如 mcr.microsoft.com/windows/nanoserver
。
例如,在切换后的 Windows 机器上,你可以运行:
docker pull mcr.microsoft.com/windows/nanoserver
docker run mcr.microsoft.com/windows/nanoserver cmd /c echo Hello from Windows Container!
输出结果将是:
Hello from Windows Container!
由于你当前处于 Linux 环境中,尝试拉取或运行 Windows 容器镜像将会失败。 这个 Linux 虚拟机中的 Docker 引擎无法运行 Windows 容器。
让我们通过尝试拉取一个 Windows 镜像来演示这一点。
docker pull mcr.microsoft.com/windows/nanoserver
你很可能会看到一个错误信息,表明找不到该镜像或无法拉取,因为 Docker 守护进程正在寻找具有该名称的 Linux 镜像。
Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows/nanoserver:latest not found: manifest unknown: manifest unknown
这确认了当前环境是为 Linux 容器设置的,无法运行 Windows 容器。
因此,在 LabEx 环境中没有实际可执行的命令来切换到 Windows 容器。 此步骤主要为可能在 Windows 上使用 Docker 的用户提供概念性信息。
在这一步骤中,我们将讨论如何切换回 Linux 容器。与上一步类似,这仅适用于在 Windows 操作系统上使用 Docker Desktop 的情况。 在 LabEx 的 Linux 环境中,你已经在使用 Linux 容器,因此无需执行任何切换操作。
在之前切换到 Windows 容器的 Windows 机器上,你可以通过右键点击系统托盘中的 Docker 图标并选择"切换到 Linux 容器"来切换回来。这个操作会停止 Windows 容器运行时,并重新启动用于托管 Linux 容器 Docker 引擎的 Linux 虚拟机。
在 Windows 机器上切换回 Linux 容器后,你将能够再次拉取和运行 Linux 容器镜像,例如 ubuntu
镜像。
例如,在切换后的 Windows 机器上,你可以运行:
docker pull ubuntu
docker run ubuntu echo Hello from Linux Container!
输出结果将是:
Hello from Linux Container!
由于你当前处于 Linux 环境中,已经默认使用 Linux 容器。 你可以通过检查 docker info
输出中的 OSType
再次确认这一点。
docker info
如步骤 2 所示,输出将显示:
OSType: linux
这确认了 LabEx 环境中的 Docker 引擎已配置为运行 Linux 容器,无需执行任何切换操作。
因此,在 LabEx 环境中没有实际可执行的命令来切换回 Linux 容器。 与上一步类似,此步骤主要为可能在 Windows 上使用 Docker 的用户提供概念性信息。
在本实验中,我们首先了解了 Docker 引擎的作用,它是 Docker 平台实现容器化的核心组件。我们学习了 Docker 引擎由守护进程、REST API 和命令行界面(CLI)组成。通过使用 docker info
命令,我们验证了 Docker 的安装及其运行状态,该命令提供了关于 Docker 环境的详细系统级信息。
在初步理解之后,我们继续检查了 Docker 引擎当前使用的容器类型。对于 Windows 用户,实验随后指导我们完成了将容器类型切换到 Windows 容器,然后再切换回 Linux 容器的过程,展示了如何在 Docker Desktop 中管理不同的容器环境。