树莓派上的 Docker - 安装指南


Docker 已成为开发人员不可或缺的工具,使他们能够轻松创建、部署和运行容器中的应用程序。虽然 Docker 通常用于台式机和服务器,但它也可以用于树莓派等嵌入式设备。在本文中,我们将介绍在树莓派上安装 Docker 并开始使用的步骤。

硬件要求

在开始之前,让我们看一下在树莓派上运行 Docker 的硬件要求。Docker 可以在任何树莓派型号上运行,但性能会因型号而异。例如,具有 4GB 或 8GB RAM 的树莓派 4 比树莓派 3B+ 提供更好的性能。

以下是运行 Docker 在树莓派上的推荐硬件要求:-

  • 树莓派 4,配备 2GB 或更多 RAM

  • 至少 16GB 存储容量的 MicroSD 卡

  • 输出功率至少为 3A 的电源适配器

  • 以太网线或 Wi-Fi 适配器用于网络连接

  • 在树莓派上安装 Docker

现在我们的硬件准备就绪,让我们继续在树莓派上安装 Docker。

步骤 1:更新和升级树莓派

在安装 Docker 之前,最好更新和升级树莓派,以确保我们拥有最新的软件和安全补丁。为此,请运行以下命令:-

sudo apt-get update
sudo apt-get upgrade

步骤 2:安装 Docker

要在树莓派上安装 Docker,我们需要运行以下命令:-

curl -sSL https://get.docker.com | sh

此命令将下载并安装树莓派上 Docker 的最新版本。

步骤 3:将用户添加到 Docker 组

默认情况下,Docker 守护程序将以 root 用户身份运行,这可能存在安全风险。为了避免这种情况,我们可以将我们的用户添加到 Docker 组,这将允许我们无需 sudo 即可运行 Docker 命令。

要将当前用户添加到 Docker 组,请运行以下命令:-

sudo usermod -aG docker $USER

步骤 4:验证 Docker 安装

要验证 Docker 是否已正确安装,我们可以运行以下命令:-

docker run hello-world

此命令将下载一个小的 Docker 镜像并在该镜像的基础上运行一个容器。如果一切正常,我们应该会看到一条消息,内容为“Hello from Docker!”。

在树莓派上使用 Docker

现在我们在树莓派上安装了 Docker,我们可以开始使用它来部署和运行容器。

要运行容器,我们首先需要从 Docker 仓库中提取镜像。Docker Hub 是最受欢迎的仓库,并且有大量我们可以使用的预构建镜像。

例如,假设我们想运行一个运行简单 Web 服务器的容器。我们可以通过从 Docker Hub 中提取“nginx”镜像并在该镜像的基础上运行容器来实现。

步骤 1:提取 Nginx 镜像

要从 Docker Hub 中提取 Nginx 镜像,请运行以下命令:-

docker pull nginx

此命令将从 Docker Hub 下载 Nginx 镜像的最新版本。

步骤 2:运行 Nginx 容器

要基于 Nginx 镜像运行容器,请运行以下命令:-

docker run -d -p 80:80 nginx

此命令将在分离模式 (-d) 下运行容器,并将容器的端口 80 映射到树莓派的端口 80 (-p 80:80)。

我们现在可以通过打开 Web 浏览器并导航到树莓派的 IP 地址来访问 Nginx Web 服务器。如果您不确定 IP 地址是什么,可以使用以下命令查找:-

hostname -I

这将输出树莓派的 IP 地址,然后您可以使用它来访问 Nginx Web 服务器。

步骤 3:创建 Dockerfile

虽然从预构建镜像运行容器很方便,但并非总是可以找到满足您特定需求的镜像。在这种情况下,您可以通过创建 Dockerfile 来创建自己的 Docker 镜像。

Dockerfile 是一个文本文件,其中包含用于构建 Docker 镜像的一组指令。您可以使用 Dockerfile 来指定基础镜像、将文件和目录添加到镜像、设置环境变量等等。

这是一个基于 Alpine Linux 最新版本并安装 Nginx 的 Dockerfile 示例:-

FROM alpine:latest

RUN apk update &&
apk add nginx &&
mkdir -p /run/nginx

COPY index.html /usr/share/nginx/html/

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

让我们分解 Dockerfile 的每一行:-

  • FROM alpine:latest 指定要使用哪个基础镜像,在本例中是 Alpine Linux 的最新版本。

  • RUN apk update && apk add nginx && mkdir -p /run/nginx 按顺序运行三个命令:-

  • apk update 更新包管理器和包列表。

  • apk add nginx 安装 Nginx Web 服务器。

  • mkdir -p /run/nginx 创建一个目录供 Nginx 存储运行时数据。

  • COPY index.html /usr/share/nginx/html/ 将 index.html 文件复制到 Docker 镜像中的 /usr/share/nginx/html/ 目录。

  • EXPOSE 80 指定应将端口 80 公开到主机。

  • CMD ["nginx", "-g", "daemon off;"] 指定容器启动时要运行的命令,在本例中是启动 Nginx Web 服务器并在前台运行它。

步骤 4:构建 Docker 镜像

要从 Dockerfile 构建 Docker 镜像,请导航到包含 Dockerfile 的目录并运行以下命令:-

docker build -t my-nginx-image .

此命令将构建一个标记为 my-nginx-image 的镜像,并使用当前目录作为构建上下文。命令末尾的句点指定构建上下文。

构建过程可能需要一些时间,具体取决于基础镜像的大小和 Dockerfile 的复杂程度。

步骤 5:运行自定义 Docker 镜像

构建 Docker 镜像后,您可以使用以下命令基于该镜像运行容器:-

docker run -d -p 80:80 my-nginx-image

此命令将在分离模式 (-d) 下运行容器,并将容器的端口 80 映射到树莓派的端口 80 (-p 80:80)。

您现在可以通过打开 Web 浏览器并导航到树莓派的 IP 地址来访问 Nginx Web 服务器,就像您在步骤 2 中所做的那样。

步骤 6:清理

要停止并删除容器,请运行以下命令:-

docker stop CONTAINER_ID && docker rm CONTAINER_ID

将 CONTAINER_ID 替换为您要停止和删除的容器的 ID。您可以使用 docker ps 命令查看正在运行的容器及其 ID 列表。

要删除 Docker 镜像,请运行以下命令:-

docker rmi my-nginx-image

将 my-nginx-image 替换为您要删除的 Docker 镜像的标签。您可以使用 docker images 命令查看 Docker 镜像及其标签列表。

结论

Docker 提供了一种方便而有效的方式来打包、分发和运行软件应用程序,尤其是在使用树莓派等资源受限的设备时非常有用。在本指南中,我们向您展示了如何在树莓派上安装 Docker 并运行第一个容器。

使用 Docker,您可以轻松部署和管理各种应用程序,从 Web 服务器到数据库等等,所有这些都位于容器化环境中。这使得管理依赖项、避免冲突和确保不同环境之间的一致性变得容易。

除了基本的安装步骤外,我们还介绍了一些在树莓派上使用 Docker 的最佳实践,包括优化容器性能和管理容器日志。

当您继续在树莓派或其他设备上使用 Docker 时,请记住这些最佳实践,以确保您的容器安全、可靠且性能良好。

更新于: 2023年6月28日

863 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告