起因
总是听人说在树莓派上应用docker多好多好,近日,本人推演了一番,发现确实不错,起码隔离成果挺好。要晓得,树莓派因为是arm架构,所以更多pip包只能以apt python3-xxx的模式装置在零碎里(用venv会各种错,装置错、应用时错,痛不欲生)。所以,就想试试用docker隔离,把我之前的时序合成股票,做成微服务放上去。
装置过程
- 应用清华源,装置docker-ce。
- 应用阿里镜像,代理docker-hub。
装置监控
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
增加用户进组
sudo usermod -aG docker $USER
把用户加进docker组里,之后新终端里就不须要用sudo docker了。
制作本人的base镜像
FROM resin/rpi-raspbian:latestENTRYPOINT []RUN rm /etc/apt/sources.listCOPY sources.list /etc/apt/sources.listRUN rm /etc/apt/sources.list.d/raspi.listCOPY raspi.list /etc/apt/sources.list.d/raspi.listRUN apt update && \ apt upgradeRUN apt install libcurl4RUN apt install apt-utilsCMD ["/bin/bash"]
docker build -t zhangsheng377/raspberry_base .
进入本人制作的镜像的bash界面
若是上述dockerfile中没有加
CMD ["/bin/bash"]
则须要在 docker run 时指定command:
docker run -ti zhangsheng377/raspberry_base /bin/bash
否则,只需:
docker run -ti zhangsheng377/raspberry_base
更新镜像
FROM zhangsheng377/raspberry_baseENTRYPOINT []RUN apt update && \ apt upgradeCMD ["/bin/bash"]
docker build -t zhangsheng377/raspberry_base -f Dockerfile .
对外端口、后盾运行
# docker run -d -p 5000:5000 --restart always zhangsheng377/stats_stockdocker run -d -p 5000:5000 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro --restart always zhangsheng377/stats_stock
其中:
- -d 为后盾运行
- -p 为凋谢的端口范畴
- --restart always 为重启策略
下一步打算
- [ ] 学习Docker Compose
Github地址
https://github.com/zhangsheng...