raspberry pi_在Raspberry Pi上试用Docker

 2023-09-18 阅读 20 评论 0

摘要:raspberry pi 在Opensource.com上,我可以在日常工作中了解很多非常有趣的新兴技术。 但是我并不总是可以自己深入研究它们。 在过去的这个周末,我留出了一些时间来做。 几年来,我一直是Raspberry Pi的狂热者,没有真正将我的Pi用作工具,而

raspberry pi

在Opensource.com上,我可以在日常工作中了解很多非常有趣的新兴技术。 但是我并不总是可以自己深入研究它们。 在过去的这个周末,我留出了一些时间来做。

几年来,我一直是Raspberry Pi的狂热者,没有真正将我的Pi用作工具,而是将其用作学习新事物的平台,无论这些事物是微电子产品还是只是尝试新软件。 通常,我的实验包括擦拭SD卡并重新安装我感兴趣的任何发行版的全新安装。 它可以正常工作,并保留了几个额外的SD卡有所帮助,但最终,我认为必须有更好的方法。

一个办法

输入Docker 。 Docker是使用Linux容器的工具,这本身就是一个有趣的话题。 简而言之,您可以将它们视为非常轻量的虚拟机,它们可以以接近本机的速度在主机上并行运行。 实际上,Docker容器根本不是虚拟机,而是在(几乎)运行中的进程与主机上的其他进程完全隔离,并带有完整的实用程序和库捆绑以帮助该进程运行; 基本上,仅适用于所选应用程序的精简操作系统。

关于容器,还有很多要说的东西,您将了解到的许多内容都与它们在数据中心中的使用有关,它们可以帮助应用程序使用专用虚拟机更少的资源来安全地并行运行。 Docker还是开发人员的绝佳工具,就像Vagrant,Puppet,Ansible等工具对传统虚拟机的帮助一样,它允许您在代码中定义操作环境,而不是手动编辑大量配置文件,然后您对其进行版本控制,复制并轻松将其复制到其他计算机。

raspberry pi有什么用、 作为Raspberry Pi修补匠,这种复制环境的简便性具有很大的吸引力,并且在Raspberry Pi的内存和处理限制内进行工作排除了使用虚拟机的方法,因此我想看看是否可以在我的Raspberry Pi上启动并运行Docker,然后尝试一下。

局限性

在开始之前,请允许我提一个警告:这个实验是关于游戏和学习的。 如果您打算在旧型号的Raspberry Pi上运行Docker中的关键任务,那么您碰巧会坐着……好吧,我不会告诉您这是不可能的,但是请确保您进行了研究并充分了解了自己的意思。在做。

我遇到的第一个挑战,对于任何花了Raspberry Pi时间的人来说都是显而易见的,那就是您需要一些耐心。 我的旧Raspberry Pi模型B运行在700 MHz,只有512 MB的内存。 曾几何时,这似乎是疯狂的快,但是由于我已经习惯了可以使用相当快的台式机和笔记本电脑,因此可以说,与过去相比,构建容器的速度似乎很慢。

第二个挑战也很明显,但是需要牢记。 虽然您可能在计算机上运行x86处理器,但是Raspberry Pi的处理器使用ARM芯片组,因此,如果您将无法将容器从主计算机复制到Pi上并使其正常工作。 当然,您可以在本地编写Dockerfile(定义进入容器的内容的文本文件)并将其复制,并且始终可以在类似的x86容器上对容器的内容进行建模,但是您必须实际构建除非您碰巧拥有一台更快的基于ARM的计算机,否则它将在Pi上运行。

入门

首先,我需要安装Docker。 我遵循了一个有用的教程 ,因此建议您也这样做,因为您自己构建它可能是一个重大挑战。 本教程基于Arch Linux的Raspberry Pi版本作为主机OS,为了使事情变得简单,我进行了讨论。 由于我习惯在台式机上使用Fedora,并且有一段时间没有与我的Pi一起玩,所以花了几分钟的搜索时间来提醒自己如何使用ifconfig而不是ip来设置网络,类似,以使用pacman而不是yum/dnf来更新系统,但这只是个小障碍。

docker安装python、 实际上,安装Docker很容易,因为它位于默认存储库中。 安装pacman -S docker并使用systemctl enable docker启动守护程序后,我启动并运行。

我发现了一个基于Raspbian的基础映像 ,似乎是一个不错的起点,然后我创建了一个简单的Dockerfile,根据我发现的模板启动基本的Web服务器,启动了docker build ,然后...观察到它失败了。 好吧,也许我第一次尝试就过头了,让我尝试一些简单的方法。

接下来,我对其进行了缩减,再次尝试,但仍然失败,并投诉了证书。 经过一段时间的搜索,我意识到证书可能由于时间问题而失败。 果然,快速检查一下date命令告诉我,我的Pi认为那是几年前的1月1日。 在使用timedatectl set-time解决问题后,我再次尝试了,并且成功了! 我的容器已构建,然后成功启动。 使用docker ps我可以看到我的容器正在工作,并且可以在指定的端口上连接到它。

下一步

现在它可以正常工作了,接下来我应该尝试什么? 我发现自己不断回到我的Pi上的一个项目是Node-RED ,它自称为“用于连接物联网的可视工具”。 您可能会认为它是IFTTT的开放源代码版本,可以实现更高级别的自定义,特别是如果您愿意编写一些JavaScript的话。

当然,我不是第一个有这个想法的人。 我在GitHub上找到了一个有用的Dockerfile ,它为我设置了所有东西。 我想添加几个额外的节点,并且进行一些修改后,我也将其启动并运行。

docker封装python程序。 在这一点上,值得一问,那又是什么呢? 我不能将Node-RED直接安装到我的Pi上吗? 当然可以。 但是现在,当我要“保存”一个项目时,我只需要保存Dockerfile,并且可以通过非常容易的安装在任何Pi上运行它。 如果我编写了要导入到Pi上的自定义代码,也许是要与Arduino对话或使一系列指示灯闪烁,那么我可以在容器启动时提取该代码。 我可以轻松地在代码中对其进行修改,然后保存该修订。 我可以为我的Pi试用其他Linux发行版,而无需擦拭卡。 我可以与该国另一边的朋友分享想法,他们可以快速而轻松地复制而无需移动大文件。

对我来说,这是一个很好的工具。

你怎么看? 您是否曾经在Raspberry Pi上试用过Docker? 在下面的评论中让我们知道。

翻译自: https://opensource.com/life/15/9/experimenting-docker-raspberry-pi

raspberry pi

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/73831.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息