树莓派部署Docker及PORTAINER教程
[*]我想在树莓派上部署Wordpress个人博客
[*]我想在树莓派上部署nextCloud私人云盘
[*]我想在树莓派上部署mosquitto物联网服务器
[*]我想在树莓派上部署HomeAssistant智能家居中心
可是,他们的部署步骤都太复杂了!而且还有可能相互影响相互冲突。一旦玩坏系统又是永无止境的重新刷写。
现在有了Docker,一切困难迎刃而解。
可以直接下载由官方打包完成的应用镜像(如Wordpress)并一键部署,也可以快速完整地体验其它Linux发行版(如CentOS)。
多个镜像之间互不干扰,随便折腾,顶多玩坏容器不也会玩坏系统。
相比完全隔离的虚拟机而言,容器消耗的系统资源更少,树莓派的小身板也可以同时运行数个容器执行不同的任务。
举个例子
用上Docker前后对比
static/image/hrline/2.gif
内容速览
[*]安装Docker——核心内容
[*]安装PORTAINER——一个Docker的网页界面,不装就只有对着黑框敲命令咯
[*]部署一个镜像——看看究竟有多方便
第一部分:安装docker下载docker官方提供的一键安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
运行一键安装
sudo sh get-docker.sh
这一步需要联网下载不少文件,如果网速较慢,花上一两个小时也是可能的,请耐心等待
安装完成之后,试着运行一下hello-world镜像看看是否能正常工作
sudo docker run hello-world
docker会自动联网下载并执行这个镜像,该镜像会输出hello world欢迎信息和使用提示后自动退出。
这是我执行hello-world镜像的输出信息
Tips:
由于众所周知的原因,连接海外Docker Hub服务器的速度很慢,而后续我们无论是部署还是升级镜像都需要联网下载大量数据的,为了提升速度我们在这里将Docker hub官网替换为国内中国科学技术大学镜像源。
编辑配置文件 /etc/docker/daemon.json
sudonano /etc/docker/daemon.json
添加如下内容{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}按Ctrl+X退出,讯问是否保存按Y确定
重新启动dockersudo systemctl restart docker
查看一下是否添加成功sudo docker info
能够显示我们设置的镜像源信息说明添加成功
第二部分:安装PORTAINER
Docker默认是没有任何界面的,要操作镜像就只能像前面运行hello-world测试一样敲进去执行,如果需要进行一些复杂的操作就很令人头疼了,因此需要安装一个新手友好一点的界面来帮助大家使用,也就是PORTAINER。
此外PORTAINER还具备集群管理能力,如果你用上一堆树莓派的话……
PORTAINER本身就是一个Docker镜像,安装非常简单,从这上面也可以体现Docker的便捷sudo docker volume create portainer_data先创建一个容器sudo docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainerDocker会自动下载并运行镜像
待执行完毕就可以直接访问网页界面了,地址是“树莓派IP:9000”,例如我的是http://192.168.9.173:9000 第一次登陆会要求设置管理员密码在初始设置界面,选择Local本地管理,我们只用它管理树莓派自己上面运行的Docker容器然后就可以看到主界面了,点击local进入本地管理在本地——容器(Containers)里可以看到我们正在使用的portainer控制台,和刚才测试时运行的hello-world,它已经自动停止了。
第三部分:试着部署一个镜像
就拿论坛上这个HomeAssistant安装教程开刀吧,看看这步骤多复杂啊!https://mc.dfrobot.com.cn/thread-281135-1-1.html
搜索并下载镜像到hub.docker.com搜索homeassistant,注意homeassistant比较特殊,树莓派需要使用专用版本 点进去之后可以看到右边有下载它的方法 使用这个命令来下载它sudo docker pull homeassistant/raspberrypi3-homeassistant虽然也可以在PORTAINER中直接下载运行,但是由于有的镜像容量大下载慢,PORTAINER并不会显示下载进度,为了方便起见选择先用命令下载完成再进去运行
启动镜像创建一个新的容器
Docker容器和外部网络是隔离开的,相当于树莓派主系统是一个路由器,因此需要映射端口才能使用。否则只能Docker容器访问外面,外面是没法访问Docker容器的。如果主机上相同的端口号已经被占用,也可以映射到别的端口号,非常灵活。
然后输入树莓派IP:8123例如我的http://192.168.9.173:8123,就可以看到初次使用的设置界面了
是不是比传统的安装教程简单了许多?
此外运行了homeassistant容器之后,树莓派系统内存占用增加并不多,并不会比直接运行更消耗多少系统资源,即使是树莓派的1G内存,也足够运行好几个容器一起工作
回复帖子有创造力奖励? 感觉跑docker还是性能堪忧
页:
[1]