2019-8-23 15:54:07 [显示全部楼层]
5763浏览
查看: 5763|回复: 2

[教程] 树莓派部署Docker及PORTAINER教程

[复制链接]
回帖奖励 3 创造力 回复本帖可获得 1 创造力奖励! 每人限 1 次(中奖概率 20%)
  • 我想在树莓派上部署Wordpress个人博客
  • 我想在树莓派上部署nextCloud私人云盘
  • 我想在树莓派上部署mosquitto物联网服务器
  • 我想在树莓派上部署HomeAssistant智能家居中心


可是,他们的部署步骤都太复杂了!而且还有可能相互影响相互冲突。一旦玩坏系统又是永无止境的重新刷写。

现在有了Docker,一切困难迎刃而解。
可以直接下载由官方打包完成的应用镜像(如Wordpress)并一键部署,也可以快速完整地体验其它Linux发行版(如CentOS)。
多个镜像之间互不干扰,随便折腾,顶多玩坏容器不也会玩坏系统。
相比完全隔离的虚拟机而言,容器消耗的系统资源更少,树莓派的小身板也可以同时运行数个容器执行不同的任务。

举个例子
用上Docker前后对比
树莓派部署Docker及PORTAINER教程图1




内容速览
  • 安装Docker——核心内容
  • 安装PORTAINER——一个Docker的网页界面,不装就只有对着黑框敲命令咯
  • 部署一个镜像——看看究竟有多方便


第一部分:安装docker
下载docker官方提供的一键安装脚本
[mw_shl_code=shell,true]curl -fsSL https://get.docker.com -o get-docker.sh[/mw_shl_code]
运行一键安装
[mw_shl_code=shell,true]sudo sh get-docker.sh[/mw_shl_code]
这一步需要联网下载不少文件,如果网速较慢,花上一两个小时也是可能的,请耐心等待

安装完成之后,试着运行一下hello-world镜像看看是否能正常工作
[mw_shl_code=shell,true]sudo docker run hello-world[/mw_shl_code]
docker会自动联网下载并执行这个镜像,该镜像会输出hello world欢迎信息和使用提示后自动退出。
树莓派部署Docker及PORTAINER教程图2
这是我执行hello-world镜像的输出信息

Tips:
由于众所周知的原因,连接海外Docker Hub服务器的速度很慢,而后续我们无论是部署还是升级镜像都需要联网下载大量数据的,为了提升速度我们在这里将Docker hub官网替换为国内中国科学技术大学镜像源。
编辑配置文件 /etc/docker/daemon.json
[mw_shl_code=shell,true]sudo  nano /etc/docker/daemon.json[/mw_shl_code]
添加如下内容
[mw_shl_code=shell,true]{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}[/mw_shl_code]
按Ctrl+X退出,讯问是否保存按Y确定

重新启动docker
[mw_shl_code=shell,true]sudo systemctl restart docker[/mw_shl_code]

查看一下是否添加成功
[mw_shl_code=shell,true]sudo docker info[/mw_shl_code]

树莓派部署Docker及PORTAINER教程图3

能够显示我们设置的镜像源信息说明添加成功

第二部分:安装PORTAINER

Docker默认是没有任何界面的,要操作镜像就只能像前面运行hello-world测试一样敲进去执行,如果需要进行一些复杂的操作就很令人头疼了,因此需要安装一个新手友好一点的界面来帮助大家使用,也就是PORTAINER。

此外PORTAINER还具备集群管理能力,如果你用上一堆树莓派的话……
树莓派部署Docker及PORTAINER教程图4

PORTAINER本身就是一个Docker镜像,安装非常简单,从这上面也可以体现Docker的便捷
[mw_shl_code=shell,true]sudo docker volume create portainer_data[/mw_shl_code]
先创建一个容器
[mw_shl_code=shell,true]sudo docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer[/mw_shl_code]
Docker会自动下载并运行镜像

待执行完毕就可以直接访问网页界面了,地址是“树莓派IP:9000”,例如我的是http://192.168.9.173:9000
树莓派部署Docker及PORTAINER教程图5
第一次登陆会要求设置管理员密码
树莓派部署Docker及PORTAINER教程图6
在初始设置界面,选择Local本地管理,我们只用它管理树莓派自己上面运行的Docker容器
树莓派部署Docker及PORTAINER教程图7
然后就可以看到主界面了,点击local进入本地管理
树莓派部署Docker及PORTAINER教程图8
在本地——容器(Containers)里可以看到我们正在使用的portainer控制台,和刚才测试时运行的hello-world,它已经自动停止了。

第三部分:试着部署一个镜像

就拿论坛上这个HomeAssistant安装教程开刀吧,看看这步骤多复杂啊!

搜索并下载镜像
到hub.docker.com搜索homeassistant,注意homeassistant比较特殊,树莓派需要使用专用版本
树莓派部署Docker及PORTAINER教程图9
点进去之后可以看到右边有下载它的方法
树莓派部署Docker及PORTAINER教程图10
使用这个命令来下载它
[mw_shl_code=shell,true]sudo docker pull homeassistant/raspberrypi3-homeassistant[/mw_shl_code]
虽然也可以在PORTAINER中直接下载运行,但是由于有的镜像容量大下载慢,PORTAINER并不会显示下载进度,为了方便起见选择先用命令下载完成再进去运行


启动镜像
创建一个新的容器
树莓派部署Docker及PORTAINER教程图11

树莓派部署Docker及PORTAINER教程图12
Docker容器和外部网络是隔离开的,相当于树莓派主系统是一个路由器,因此需要映射端口才能使用。否则只能Docker容器访问外面,外面是没法访问Docker容器的。
如果主机上相同的端口号已经被占用,也可以映射到别的端口号,非常灵活。


然后输入树莓派IP:8123例如我的http://192.168.9.173:8123,就可以看到初次使用的设置界面了
树莓派部署Docker及PORTAINER教程图13

是不是比传统的安装教程简单了许多?


树莓派部署Docker及PORTAINER教程图14

此外运行了homeassistant容器之后,树莓派系统内存占用增加并不多,并不会比直接运行更消耗多少系统资源,即使是树莓派的1G内存,也足够运行好几个容器一起工作

pATAq  版主

发表于 2019-9-10 00:08:47

回复帖子有创造力奖励?
回复

使用道具 举报

pATAq  版主

发表于 2019-9-10 00:09:34

感觉跑docker还是性能堪忧
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail