Raspberry Pi 上的 Docker - 安装指南
Docker 已成为开发者不可或缺的工具,帮助他们轻松地在容器中创建、部署和运行应用程序。Docker 通常用于桌面和服务器,但也可用于 Raspberry Pi 等嵌入式设备。本文将介绍在 Raspberry Pi 上安装 Docker 并开始使用的步骤。
硬件要求
在开始之前,我们先来了解一下在 Raspberry Pi 上运行 Docker 的硬件要求。Docker 可以在任何型号的 Raspberry Pi 上运行,但性能会因型号而异。例如,配备 4GB 或 8GB RAM 的 Raspberry Pi 4 将比 Raspberry Pi 3B+ 提供更好的性能。
以下是在 Raspberry Pi 上运行 Docker 的推荐硬件要求 -
配备 2GB 或更大 RAM 的 Raspberry Pi 4
至少配备 16GB 存储空间的 MicroSD 卡
至少配备 3A 输出的电源
用于网络连接的以太网线或 Wi-Fi 适配器
在 Raspberry Pi 上安装 Docker
现在硬件已准备就绪,让我们继续在 Raspberry Pi 上安装 Docker。
步骤 1:更新和升级 Raspberry Pi
在安装 Docker 之前,建议您更新并升级 Raspberry Pi,以确保我们拥有最新的软件和安全补丁。为此,请运行以下命令 -
sudo apt-get update sudo apt-get upgrade
步骤 2:安装 Docker
要在 Raspberry Pi 上安装 Docker,我们需要运行以下命令 -
curl -sSL https://get.docker.com | sh
此命令将在 Raspberry Pi 上下载并安装最新版本的 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!"。
在 Raspberry Pi 上使用 Docker
现在我们已经在 Raspberry Pi 上安装了 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 端口Raspberry Pi 上的 80 (-p 80:80)。
现在,我们可以通过打开 Web 浏览器并导航到 Raspberry Pi 的 IP 地址来访问 Nginx Web 服务器。如果您不确定 IP 地址是什么,可以使用以下命令查找 -
hostname -I
这将输出 Raspberry Pi 的 IP 地址,然后您可以使用该地址访问 Nginx Web 服务器。
步骤 3:创建 Dockerfile
虽然从预构建的镜像运行容器很方便,但并不总是能找到满足您特定需求的镜像。在这种情况下,您可以通过创建 Dockerfile 来创建自己的 Docker 镜像。
Dockerfile 是一个文本文件,其中包含一组用于构建 Docker 镜像的指令。您可以使用 Dockerfile 指定基础镜像、向镜像添加文件和目录、设置环境变量等等。
这是一个 Dockerfile 示例,它基于最新版本的 Alpine Linux 构建镜像并安装 Nginx -
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 端口映射到 Raspberry Pi 上的 80 端口 (-p 80:80)。
现在,您可以像步骤 2 一样,打开 Web 浏览器并导航到 Raspberry Pi 的 IP 地址来访问 Nginx Web 服务器。
步骤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 提供了一种便捷高效的软件应用程序打包、分发和运行方式,尤其是在使用 Raspberry Pi 等资源受限的设备时。在本指南中,我们向您展示了如何在 Raspberry Pi 上安装 Docker 并运行您的第一个容器。
借助 Docker,您可以在容器化环境中轻松部署和管理各种应用程序,从 Web 服务器到数据库等等。这样可以轻松管理依赖项、避免冲突并确保不同环境之间的一致性。
除了基本的安装步骤外,我们还介绍了在 Raspberry Pi 上使用 Docker 的一些最佳实践,包括优化容器性能和管理容器日志。
当您继续在 Raspberry Pi 或其他设备上使用 Docker 时,请牢记这些最佳实践,以确保您的容器安全、可靠且性能卓越。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

