树莓派上的 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 时,请记住这些最佳实践,以确保您的容器安全、可靠且性能良好。