你的第一个 Docker 实验

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

欢迎来到你的第一个 Docker 实验!在这个实验中,你将通过学习 Docker(一个用于开发、部署和运行应用程序的强大平台),迈出进入容器化世界的第一步。

Docker 允许你将应用程序及其所有依赖项打包到一个称为容器的标准化单元中。这使得应用程序能够在不同环境中更轻松地一致部署和运行。

学习 Docker 的最佳方法是 实践。不要只是阅读本实验内容,在 LabEx 环境中尝试执行每个命令!这是进行实验和学习的理想场所。

在这个实验中,你将学习如何:

  • 理解 Docker 基本概念
  • 运行你的第一个 Docker 容器
  • 使用 Docker 基本命令
  • 探索 Docker Hub

提示: 本实验是 Docker 技能树(一个结构化的知识体系)的一部分。每完成一步,系统都会验证你的操作,正确操作将获得技能点 💡。完成实验后,你可以访问 Docker 技能树 查看累计的技能点。

让我们开启 Docker 之旅吧!点击下方的 继续 按钮,或使用左侧的虚拟机图标开始实验。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("`Docker`")) -.-> docker/ContainerOperationsGroup(["`Container Operations`"]) docker(("`Docker`")) -.-> docker/ImageOperationsGroup(["`Image Operations`"]) docker/ContainerOperationsGroup -.-> docker/run("`Run a Container`") docker/ImageOperationsGroup -.-> docker/images("`List Images`") subgraph Lab Skills docker/run -.-> lab-92719{{"`你的第一个 Docker 实验`"}} docker/images -.-> lab-92719{{"`你的第一个 Docker 实验`"}} end

理解 Docker 概念

在开始使用 Docker 之前,让我们先熟悉一些关键概念。如果一开始觉得这些概念复杂,也不用担心,我们很快就会看到它们的实际应用!

  1. 容器(Container):一个轻量级、独立且可执行的软件包,包含运行某个软件所需的一切。
  2. 镜像(Image):可以将其视为容器的模板或蓝图。它包含创建容器所需的所有指令。
  3. Docker Hub:类似于 GitHub,但用于存储 Docker 镜像,你可以在其中查找和共享容器镜像。
  4. Docker 引擎(Docker Engine):在你的机器上运行和管理容器的核心技术。

下面是一个简单的图表,帮助你直观地了解这些概念是如何协同工作的:

graph TD A[Docker Engine] -->|runs| B(Containers) C[Images] -->|create| B D[Docker Hub] -->|stores| C A -->|pulls| C A -->|pushes| D

该图表展示了:

  • Docker 引擎运行容器
  • 镜像用于创建容器
  • Docker Hub 存储镜像
  • Docker 引擎可以从 Docker Hub 拉取镜像,并将镜像推送到 Docker Hub

理解这些关系将有助于你在后续学习中掌握 Docker 的工作原理。点击下方的 继续 按钮进入下一步!

运行你的第一个容器

既然我们已经了解了基本概念,那就让我们使用 hello-world 镜像来运行第一个 Docker 容器吧。这个简单的镜像旨在验证你的 Docker 安装是否正常工作,并向你介绍 Docker 的基础知识。

Docker Hello World

要运行该容器,请在终端中使用以下命令:

docker run hello-world

提示: 点击任何代码块右下角的“Explain Code”,即可与 Labby AI 交流以获得解释。交流结束后,点击“Continue”返回实验。

让我们来详细分析一下这个命令的作用:

  1. docker:这是与 Docker 引擎进行交互的命令。
  2. run:这个子命令告诉 Docker 创建并启动一个新容器。
  3. hello-world:这是我们要运行的镜像的名称。

当你运行这个命令时,幕后会发生几件事:

  1. Docker 检查本地是否有 hello-world 镜像。
  2. 如果没有,它会自动从 Docker Hub 下载(即“拉取”)该镜像。
  3. Docker 根据这个镜像创建一个新容器。
  4. 容器运行,显示一条消息,然后退出。

你应该会看到类似以下的输出:

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.
    (amd64)
 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

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

这个输出解释了 Docker 运行 hello-world 容器所经历的过程。让我们来详细分析一下:

  1. Docker 客户端(你运行的命令)与 Docker 守护进程(在你的机器上管理 Docker 的后台服务)进行通信。
  2. 守护进程从 Docker Hub 拉取了 “hello-world” 镜像,因为本地没有该镜像。
  3. 守护进程根据该镜像创建了一个新容器并运行它。
  4. 容器的输出被发送回你的终端。

如果你还不完全理解这些内容,也不用担心。随着学习的深入,这些概念会变得更加清晰。

点击 继续 按钮,进入下一步。

理解 Docker 镜像

既然我们已经运行了第一个容器,接下来让我们更详细地探索 Docker 镜像。请记住,镜像就像是容器的蓝图或模板,它包含了创建容器所需的所有指令。

要查看本地系统上可用的镜像,请使用以下命令:

docker images

你应该会看到类似以下的输出:

REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
hello-world         latest    feb5d9fea6a5   2 weeks ago     13.3kB

让我们来详细分析每一列的含义:

  • REPOSITORY:镜像的名称。在这个例子中,是 “hello-world”。
  • TAG:镜像的版本。如果你没有指定标签,“latest” 是默认标签。
  • IMAGE ID:镜像的唯一标识符。当你需要引用特定镜像时,这个标识符很有用。
  • CREATED:镜像的创建时间。这有助于你了解自己是否拥有最新版本的镜像。
  • SIZE:镜像在磁盘上的大小。Docker 镜像设计得很轻量级,这就是为什么 hello-world 镜像只有 13.3kB 的原因。

hello-world 镜像现在已存储在你的本地系统中。这意味着,如果你再次运行 docker run hello-world,Docker 无需从 Docker Hub 下载该镜像,而是会使用本地副本,从而使整个过程更快。

如果你没有看到 hello-world 镜像,也不用担心!为了节省空间,它可能已被自动删除。你始终可以通过运行 docker pull hello-world 再次拉取该镜像。

注意:LabEx 免费用户无法拉取镜像,因为免费虚拟机没有网络访问权限。

点击 继续 按钮,进入下一步。

探索 Docker Hub

Docker Hub 是一个基于云的镜像仓库服务,Docker 用户和组织可以在其中存储和分发他们的 Docker 镜像。它就像是 Docker 镜像的 GitHub,是一个中央仓库,你可以在其中查找、共享和管理 Docker 镜像。

让我们来探索一下 Docker Hub:

  1. 打开你的网页浏览器,访问 https://hub.docker.com
  2. 在顶部的搜索栏中输入 “hello-world”,然后按回车键
  3. 你会看到一个镜像列表。找到官方的 “hello-world” 镜像(它应该带有 “官方镜像” 徽章)
  4. 点击 “hello-world” 镜像以查看其详细信息
Docker Hub 镜像搜索结果

在镜像页面上,你可以看到:

  • 镜像的描述
  • 使用说明
  • 镜像的拉取(下载)次数
  • 可用的标签(版本)

当你运行 docker run 命令且本地没有该镜像时,Docker 会在 Docker Hub 中查找镜像。这就是为什么即使你之前没有显式下载 hello-world 镜像,也能够运行该容器的原因。

关于 Docker Hub 的一些关键点:

  1. 官方镜像(Official Images):这些镜像由 Docker 精心挑选,通常维护良好且文档完善。对于初学者来说,它们是不错的选择。
  2. 标签(Tags):镜像可以有多个版本,称为标签。例如,你可能会看到 “latest”、“1.0”、“2.1” 等标签。当你不指定标签时(就像我们在 docker run hello-world 中所做的那样),Docker 会默认使用 “latest” 标签。
  3. 拉取命令(Pull Command):在每个镜像的页面上,你会看到一个 “拉取命令”。这是你在不运行容器的情况下手动下载镜像时要使用的命令。例如:docker pull hello-world
  4. Dockerfile:Docker Hub 上的许多镜像都会有一个指向其 Dockerfile 的链接,Dockerfile 是用于构建镜像的脚本。如果你想了解镜像的创建方式,这个链接会很有帮助。

探索 Docker Hub 并掌握查找和使用镜像的方法,是使用 Docker 的一项关键技能。随着学习的深入,你可能会经常在 Docker Hub 上搜索适合你需求的镜像。

这是你第一个 Docker 实验的最后一步!点击 继续 按钮,查看你在本实验中学到的所有技能。

总结

恭喜你!你已经完成了第一个 Docker 实验,迈出了踏入容器化世界的第一步!你已经学会了如何:

  • 理解 Docker 基本概念
  • 使用 hello-world 镜像运行你的第一个容器
  • 查看并理解系统上的 Docker 镜像
  • 浏览 Docker Hub 以查找和了解镜像

这仅仅是你 Docker 之旅的开始!即使是通过简单的示例,你也已经见识到了容器化的强大之处。准备好将你的技能提升到新的水平了吗?

LabEx Pro 为你开启 Docker 学习的全新世界,其中包括:

LabEx Pro
  • 高级 Docker 实验:学习容器编排、多容器应用程序以及生产部署策略
  • 真实世界项目:在实际开发场景中积累使用 Docker 的实践经验
  • 专家支持:在你需要时随时获得 Docker 专业人士的帮助
  • 全面的技能树:为你在 DevOps 和云计算领域的职业生涯打下坚实基础

你可以继续通过更多免费实验开启 Docker 之旅,或者 升级到 LabEx Pro,加速成为 Docker 专家的进程!

您可能感兴趣的其他 Docker 教程