[智能家居]树莓派搭建全屋智能之环境搭建01

[复制链接]
查看2257 | 回复14 | 2024-4-25 22:41:23 | 显示全部楼层 |阅读模式

本帖最后由 WT_0213 于 2024-5-6 14:16 编辑

内容简介

内容主要包括安装 Docker、Portainer、Home Assistant、Mosquitto(主要用于mqtt服务)

更新软件包

在安装这些应用之前最好先更新下软件包列表和软件包

执行以下命令

# 是一个常用的命令,用于更新系统中可用软件包的信息。此命令只是更新软件包列表,而不会实际安装或升级软件包
# 如果有可用的更新,sudo apt-get update 会下载并更新本地系统的软件包列表。这个列表包含了可用软件包的名称、版本和其他相关信息。
sudo apt-get update 
# 用于更新系统中的软件包
sudo apt-get upgrade

默认也不需要更换源,速度还算可以。 WX20240425-214310.png

Docker安装

ffad217afe219d838b4082d6d470ea33.jpg

简介来自百度百科:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

简单来说,Docker就是个小工具,可以把程序,库文件,配置文件都一起“打包”。然后,在任何一个计算机上,都可以使用这个打好的包。 有了容器,一个命令就能把程序跑起来,做到了一次打包,就可以到处使用。

还有就是在Docker上面随意折腾,不会影响到宿主机的环境,搞坏了重新添加容器就好了。

安装

接下来安装docker,通过使用官方脚本一键即可安装

# 这个命令将自动从官方Docker仓库下载并安装最新版本的Docker。
curl -sSL https://get.docker.com | sh

安装完成

root@raspberrypi:~# curl -sSL https://get.docker.com | sh
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           26.1.0
 API version:       1.45
 Go version:        go1.21.9
 Git commit:        9714adc
 Built:             Mon Apr 22 17:06:59 2024
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       c8af8eb
  Built:            Mon Apr 22 17:06:59 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

root@raspberrypi:~# 

启动

执行命令启动docker服务

# 启用 docker
sudo systemctl enable docker
# 启动 docker服务
sudo systemctl start docker
# 查询docker服务状态
sudo systemctl status docker

输入以上命令后,如果没有报错,基本上都能安装成功,下方为安装完毕后样子。

root@raspberrypi:~# sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
root@raspberrypi:~# sudo systemctl start docker
root@raspberrypi:~# sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabl>
     Active: active (running) since Thu 2024-04-25 21:08:34 CST; 49min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3444 (dockerd)
      Tasks: 10
        CPU: 714ms
     CGroup: /system.slice/docker.service
             └─3444 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>

4月 25 21:08:29 raspberrypi systemd[1]: Starting docker.service - Docker Applic>
4月 25 21:08:29 raspberrypi dockerd[3444]: time="2024-04-25T21:08:29.306029998+>
4月 25 21:08:32 raspberrypi dockerd[3444]: time="2024-04-25T21:08:32.092595575+>
4月 25 21:08:32 raspberrypi dockerd[3444]: time="2024-04-25T21:08:32.625661950+>
4月 25 21:08:33 raspberrypi dockerd[3444]: time="2024-04-25T21:08:33.823113467+>
4月 25 21:08:33 raspberrypi dockerd[3444]: time="2024-04-25T21:08:33.823149097+>
4月 25 21:08:33 raspberrypi dockerd[3444]: time="2024-04-25T21:08:33.823183430+>
4月 25 21:08:33 raspberrypi dockerd[3444]: time="2024-04-25T21:08:33.823328317+>
4月 25 21:08:34 raspberrypi dockerd[3444]: time="2024-04-25T21:08:34.427742672+>
4月 25 21:08:34 raspberrypi systemd[1]: Started docker.service - Docker Applica>
lines 1-21/21 (END)

Portainer面板

Portainer是Docker的图形化管理WEB工具,由GO语言编写的,提供状态显示、应用模板快速部署、对于Docker(容器、镜像、网络、数据卷)的基本操作、日志显示、容器控制台等功能。

安装

sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

docker run 执行流程

首先在指定镜像上创建一个可写的容器层

然后使用指定的命令(COMMAND)启动它

docker run 相当于执行了两个 API:/containers/create、/containers/(id)/start

option 描述
-v 目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录>
-d 守护进程,后台运行该容器
-p 指定端口映射,格式:主机(宿主)端口:容器端口
-P 随机端口映射,容器内部端口随机映射到主机的端口(49153起始 49153到65535)
–name “xxx” 容器名字
–restart Docker 重启后,容器是否自动重启

输入以上命令后,如果没有报错,基本上都能安装成功,下方为安装完毕后样子。

root@raspberrypi:~# sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
57654d40e0a5: Pull complete 
1f476acfabd6: Pull complete 
23f2184d3136: Pull complete 
e21d017187f1: Pull complete 
bfa9cfee4c8e: Pull complete 
9d8366b4fa62: Pull complete 
d55f4e10dc55: Pull complete 
5230628c9a1d: Pull complete 
dd27a37dee51: Pull complete 
5cc1bbad4ed2: Pull complete 
4f4fb700ef54: Pull complete 
Digest: sha256:4a1ceadd7f7898d9190ee0a6d22234c4323aefd80e796e84f5e57127f74370f1
Status: Downloaded newer image for portainer/portainer-ce:latest
92bda70b94659990de3c2c58819959732c7f466ef1b9edbc2a658b1695dafa90
root@raspberrypi:~# 

启动

打开浏览器,输入树莓派的IP:9000打开页面就可以看到Portainer管理页面

有两个选项:

New Portainer Installation:新安装,暂时设置admin的密码为portainer

Restore Portainer from backup:从之前的备份中恢复

这里我们选择新安装Portainer。创建用户⚠️注意这里密码要求

密码的长度必须至少为12个字符。

WX20240425-222052.png

完成用户创建,出现这个别慌。

大体意思是

新Portainer安装 出于安全考虑,您的Portainer实例超时。要重新启用Portainer实例,您需要重新启动Portainer。 有关更多信息,请查看我们的文档。

WX20240425-222120.png

然后回到命令行,执行以下命令

# 查看当前正在运行的容器
docker ps
# 重启容器 docker restart <container_name_or_id> 将<container_name_or_id>替换为实际的容器名称或ID
docker restart portainer

输入以上命令后,如果没有报错,基本上都能安装成功,下方为安装完毕后样子。

root@raspberrypi:~# docker ps
CONTAINER ID   IMAGE                    COMMAND        CREATED          STATUS          PORTS                                                           NAMES
92bda70b9465   portainer/portainer-ce   "/portainer"   16 minutes ago   Up 15 minutes   8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer
root@raspberrypi:~# docker restart portainer
portainer
root@raspberrypi:~# 

然后再次打开浏览器,刷新一下页面会再次出现

223131fan7yrax7xdny0r3.png

再次输入两次密码,点击Create user即可进入管理界面。

WX20240425-223139.png

点击Get Started

WX20240425-223318.png

好了Portainer也搞定了,点击进入详情查看里面包含容器、镜像、挂载目录等模块。

WX20240425-223605.png

这样我们管理起来就容易很多了。

本机容器列表:支持启动、停止、杀掉进程、重启、删除、添加容器等操作,和敲命令效果是一样的。

本机镜像列表:支持pull镜像、查看当前本机已安装的镜像.

篇幅感觉有点长了,分开发布吧。

就怕编辑太多一保存失败了。内容丢失就惨了。

关联上一篇

[智能家居]树莓派搭建全屋智能之系统烧录 https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44571

关联下一篇

【智能家居】树莓派搭建全屋智能之环境搭建02 https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44577

回复

使用道具 举报

1084504793 | 2024-4-26 07:41:00 | 显示全部楼层
回复

使用道具 举报

爱笑 | 2024-4-26 08:49:32 | 显示全部楼层
不错不错,持续更新!
用心做好保姆工作
回复 支持 反对

使用道具 举报

干簧管 | 2024-4-26 09:10:26 | 显示全部楼层
大佬厉害
回复

使用道具 举报

abs421209023 | 2024-4-26 09:57:51 | 显示全部楼层
回复

使用道具 举报

lazy | 2024-4-26 13:51:38 | 显示全部楼层
学习
回复

使用道具 举报

物联网 | 2024-4-28 08:12:37 | 显示全部楼层
感谢分享
回复

使用道具 举报

sansui | 2024-4-28 10:00:38 | 显示全部楼层
树莓派
回复

使用道具 举报

7788 | 2024-4-28 10:34:45 | 显示全部楼层
羡慕
回复

使用道具 举报

timo | 2024-4-28 14:53:33 | 显示全部楼层
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则