您已经运行了安装程序,完成了设置,Docker 也显示已就绪。但如何真正确认呢?网上的每份 Docker 指南都假设您已验证过环境,却很少有人告诉您这一步该怎么做。
好消息是,Docker 提供了一个名为 hello-world 的内置测试镜像,用于确认一切工作正常。您只需运行一条命令,就能立即得到反馈,判断 Docker 是否配置正确。
本文将向您展示 hello-world 镜像的作用、如何运行、输出意味着什么,以及在出现问题时如何修复常见错误。
运行完 Hello World 示例后,您就可以开始学习 Docker 基础了。我们的 Introduction to Docker 课程可让您在一个下午就上手。
什么是 Docker Hello World?
hello-world 镜像是 Docker 官方用于测试安装情况的诊断工具。
Docker 维护了这个镜像,使其成为可证明 Docker 正常工作的最小容器。它是一个极小的可执行程序,只会打印一条确认消息然后退出。就这么简单。
Docker 提供 hello-world 是因为新用户需要快速验证三件事:
Docker 是否已在您的系统上正确安装
您是否拥有运行 Docker 命令的正确权限
Docker 守护进程是否可访问并能响应请求
可以把它类比为安装 Python 后运行 python --version。您只是确认工具已可用——还没有开始构建任何东西。
如何运行 Docker Hello World
运行 hello-world 镜像只需一条命令。
docker run hello-world技术支持
运行该命令时,Docker 会做两件事:
获取镜像后,Docker 会基于该镜像创建并运行一个容器。容器执行其内置程序,打印确认消息并退出。
运行 Docker Hello World 时会发生什么?
当您运行 docker run hello-world 时,会按以下步骤进行。
首先,Docker 检查本地是否存在该镜像 。它会在本地镜像缓存中搜索您是否已下载过 hello-world。如果镜像已存在,Docker 会跳到下一步;否则,Docker 会连接到 Docker Hub 并拉取该镜像。
接着,Docker 基于镜像创建容器 。镜像就像模板——包含程序及其运行所需的一切。容器则是该模板的实际运行实例。
容器运行其程序,并在终端打印确认消息。该消息解释了 Docker 刚刚执行的步骤,并确认一切正常。
最后,容器退出。hello-world 程序并非为持续运行而设计。它只会打印消息并立即停止。容器仍保留在您的系统中,但处于停止状态。
整个过程在您运行命令时自动完成;这些步骤都无需您手动操作。
理解 Docker Hello World 的输出
当 hello-world 成功运行时,您会看到多行消息,逐条说明刚刚发生了什么。
Docker 运行 hello-world 的输出
输出首先会确认 Docker 在本地找不到镜像,因此从 Docker Hub 拉取。您会看到类似 "Unable to find image 'hello-world:latest' locally" 的提示,随后是下载进度条。
接下来是确认 Docker 工作正常的主体信息。该消息会带您回顾 Docker 执行的具体步骤。它说明 Docker 守护进程拉取镜像、基于镜像创建容器、运行其中的可执行文件,并将输出流式传输到您的终端。
消息中还包含下一步建议。它会建议您运行更具交互性的容器,例如 Ubuntu ,此类容器会保持运行,让您在其中执行命令。这有助于您理解一次性测试容器与开发中实际使用的容器之间的区别。
最后,您会看到容器退出。hello-world 程序的设计就是打印消息并立即停止——它不是长时间运行的服务或应用。一旦确认 Docker 正常工作,容器的任务就完成了。
如果您完整看到这些输出且没有错误,说明您的 Docker 安装工作正常,已经可以运行真实的容器了。
运行 Docker Hello World 时的常见问题
即使是像 hello-world 这样简单的测试,如果 Docker 未正确设置,也可能失败。以下是最常见的问题及其解决方法。
找不到 Docker 命令
如果您看到 "docker: command not found" 或 "docker is not recognized",说明 Docker 未安装,或未加入系统 PATH。
在 Linux 上,检查是否已安装 Docker:
which docker 技术支持
Docker 位置
如果没有任何返回结果,您需要安装 Docker。在 macOS 和 Windows 上,请确保 Docker Desktop 已安装并正在运行。
权限被拒绝错误
您可能会看到 "permission denied while trying to connect to the Docker daemon socket."
当您的用户帐户无权访问 Docker 时会发生这种情况。在 Linux 上,您需要使用 sudo 运行 Docker,或将用户添加到 docker 组:
sudo usermod -aG docker $USER 技术支持
注销并重新登录以使更改生效。在使用 Docker Desktop 的 macOS 和 Windows 上通常不会遇到此问题。
Docker 守护进程未运行
如果您收到 "Cannot connect to the Docker daemon",说明 Docker 服务未在运行。
在 Linux 上,启动 Docker 服务:
sudo systemctl start docker 技术支持
在 macOS 和 Windows 上,打开 Docker Desktop。应用程序运行时会自动启动守护进程。就绪后,您会在系统托盘看到 Docker 图标。
拉取镜像的网络问题
有时 Docker 无法从 Docker Hub 下载 hello-world 镜像。您会看到有关拉取失败或连接超时的错误。
请先检查您的网络连接。如果处于公司防火墙或代理之后,可能需要为 Docker 配置代理。在 Linux 上,可在 /etc/systemd/system/docker.service.d/http-proxy.conf 中配置;在 Docker Desktop 中,可在设置里配置代理。
如果这些方法仍无效,错误消息通常会指明方向——请仔细阅读。
运行 Docker Hello World 之后该做什么
既然已确认 Docker 正常工作,接下来可以这样做。
运行一个真正的容器 ,带有交互式 Shell。尝试拉取并运行一个 Ubuntu 容器:
docker run -it ubuntu bash 技术支持
Ubuntu bash
-it 标志会在容器内为您提供一个交互式终端。您可以运行命令、安装软件包并探索容器的工作方式。输入 exit 以退出容器。
探索可用镜像 于 Docker Hub。您会发现诸如 PostgreSQL、MySQL 等数据库的官方镜像,Python、Node.js 等编程语言的镜像,以及 Redis、Nginx 等工具的镜像。访问 hub.docker.com 浏览,或直接在命令行中搜索:
docker search python技术支持
可用的 Python 镜像。
使用 Dockerfile 构建您自己的镜像。从简单开始:创建一个名为 Dockerfile 的文件,将您的应用代码复制到容器中,并定义如何运行它。即便是只有几行的基础 Dockerfile,也能让您了解镜像如何由指令构建而成。
结语
docker run hello-world 命令只有一个作用:证明您的 Docker 安装可用。
它并不是真实应用,也不会教您如何构建容器或部署生产服务。但它能让您放心,确认 Docker 安装本身没有问题。
如果 hello-world 运行无误并打印出确认消息,说明您的 Docker 环境已正确设置,可以开始使用真实容器。
接下来怎么做?参加我们的 Introduction to Docker 课程,掌握团队协作所需的基础知识。之后,参考我们的 10 个 Docker 项目灵感 一文,动手构建实用项目。
您已经运行了安装程序,完成了设置,Docker 也显示已就绪。但如何真正确认呢?网上的每份 Docker 指南都假设您已验证过环境,却很少有人告诉您这一步该怎么做。
好消息是,Docker 提供了一个名为
hello-world的内置测试镜像,用于确认一切工作正常。您只需运行一条命令,就能立即得到反馈,判断 Docker 是否配置正确。本文将向您展示
hello-world镜像的作用、如何运行、输出意味着什么,以及在出现问题时如何修复常见错误。运行完 Hello World 示例后,您就可以开始学习 Docker 基础了。我们的 Introduction to Docker 课程可让您在一个下午就上手。
什么是 Docker Hello World?
hello-world镜像是 Docker 官方用于测试安装情况的诊断工具。Docker 维护了这个镜像,使其成为可证明 Docker 正常工作的最小容器。它是一个极小的可执行程序,只会打印一条确认消息然后退出。就这么简单。
Docker 提供
hello-world是因为新用户需要快速验证三件事:可以把它类比为安装 Python 后运行
python --version。您只是确认工具已可用——还没有开始构建任何东西。如何运行 Docker Hello World
运行
hello-world镜像只需一条命令。运行该命令时,Docker 会做两件事:
检查本地是否存在该镜像。Docker 会在本地镜像缓存中查找您是否已下载
hello-world。如果镜像已存在,Docker 会跳过下载,直接运行。如果本地找不到镜像,Docker 会从 Docker Hub 拉取。Docker Hub 是 Docker 存放官方镜像的默认注册表。
hello-world镜像非常小——只有几 KB,下载很快就能完成。获取镜像后,Docker 会基于该镜像创建并运行一个容器。容器执行其内置程序,打印确认消息并退出。
运行 Docker Hello World 时会发生什么?
当您运行
docker run hello-world时,会按以下步骤进行。首先,Docker 检查本地是否存在该镜像。它会在本地镜像缓存中搜索您是否已下载过
hello-world。如果镜像已存在,Docker 会跳到下一步;否则,Docker 会连接到 Docker Hub 并拉取该镜像。接着,Docker 基于镜像创建容器。镜像就像模板——包含程序及其运行所需的一切。容器则是该模板的实际运行实例。
容器运行其程序,并在终端打印确认消息。该消息解释了 Docker 刚刚执行的步骤,并确认一切正常。
最后,容器退出。
hello-world程序并非为持续运行而设计。它只会打印消息并立即停止。容器仍保留在您的系统中,但处于停止状态。整个过程在您运行命令时自动完成;这些步骤都无需您手动操作。
理解 Docker Hello World 的输出
当
hello-world成功运行时,您会看到多行消息,逐条说明刚刚发生了什么。Docker 运行 hello-world 的输出
输出首先会确认 Docker 在本地找不到镜像,因此从 Docker Hub 拉取。您会看到类似 "Unable to find image 'hello-world:latest' locally" 的提示,随后是下载进度条。
接下来是确认 Docker 工作正常的主体信息。该消息会带您回顾 Docker 执行的具体步骤。它说明 Docker 守护进程拉取镜像、基于镜像创建容器、运行其中的可执行文件,并将输出流式传输到您的终端。
消息中还包含下一步建议。它会建议您运行更具交互性的容器,例如 Ubuntu,此类容器会保持运行,让您在其中执行命令。这有助于您理解一次性测试容器与开发中实际使用的容器之间的区别。
最后,您会看到容器退出。
hello-world程序的设计就是打印消息并立即停止——它不是长时间运行的服务或应用。一旦确认 Docker 正常工作,容器的任务就完成了。如果您完整看到这些输出且没有错误,说明您的 Docker 安装工作正常,已经可以运行真实的容器了。
运行 Docker Hello World 时的常见问题
即使是像
hello-world这样简单的测试,如果 Docker 未正确设置,也可能失败。以下是最常见的问题及其解决方法。找不到 Docker 命令
如果您看到 "docker: command not found" 或 "docker is not recognized",说明 Docker 未安装,或未加入系统 PATH。
在 Linux 上,检查是否已安装 Docker:
Docker 位置
如果没有任何返回结果,您需要安装 Docker。在 macOS 和 Windows 上,请确保 Docker Desktop 已安装并正在运行。
权限被拒绝错误
您可能会看到 "permission denied while trying to connect to the Docker daemon socket."
当您的用户帐户无权访问 Docker 时会发生这种情况。在 Linux 上,您需要使用 sudo 运行 Docker,或将用户添加到
docker组:注销并重新登录以使更改生效。在使用 Docker Desktop 的 macOS 和 Windows 上通常不会遇到此问题。
Docker 守护进程未运行
如果您收到 "Cannot connect to the Docker daemon",说明 Docker 服务未在运行。
在 Linux 上,启动 Docker 服务:
在 macOS 和 Windows 上,打开 Docker Desktop。应用程序运行时会自动启动守护进程。就绪后,您会在系统托盘看到 Docker 图标。
拉取镜像的网络问题
有时 Docker 无法从 Docker Hub 下载
hello-world镜像。您会看到有关拉取失败或连接超时的错误。请先检查您的网络连接。如果处于公司防火墙或代理之后,可能需要为 Docker 配置代理。在 Linux 上,可在
/etc/systemd/system/docker.service.d/http-proxy.conf中配置;在 Docker Desktop 中,可在设置里配置代理。如果这些方法仍无效,错误消息通常会指明方向——请仔细阅读。
运行 Docker Hello World 之后该做什么
既然已确认 Docker 正常工作,接下来可以这样做。
运行一个真正的容器,带有交互式 Shell。尝试拉取并运行一个 Ubuntu 容器:
Ubuntu bash
-it标志会在容器内为您提供一个交互式终端。您可以运行命令、安装软件包并探索容器的工作方式。输入exit以退出容器。探索可用镜像 于 Docker Hub。您会发现诸如 PostgreSQL、MySQL 等数据库的官方镜像,Python、Node.js 等编程语言的镜像,以及 Redis、Nginx 等工具的镜像。访问 hub.docker.com 浏览,或直接在命令行中搜索:
可用的 Python 镜像。
使用 Dockerfile 构建您自己的镜像。从简单开始:创建一个名为
Dockerfile的文件,将您的应用代码复制到容器中,并定义如何运行它。即便是只有几行的基础 Dockerfile,也能让您了解镜像如何由指令构建而成。结语
docker run hello-world命令只有一个作用:证明您的 Docker 安装可用。它并不是真实应用,也不会教您如何构建容器或部署生产服务。但它能让您放心,确认 Docker 安装本身没有问题。
如果
hello-world运行无误并打印出确认消息,说明您的 Docker 环境已正确设置,可以开始使用真实容器。接下来怎么做?参加我们的 Introduction to Docker 课程,掌握团队协作所需的基础知识。之后,参考我们的 10 个 Docker 项目灵感 一文,动手构建实用项目。