前言
上一篇樹(shù)莓派也跑Docker和.NET Core有對(duì)樹(shù)莓派做簡(jiǎn)單的介紹。包括系統(tǒng)的燒錄、基本的設(shè)置、docker的安裝、.net core的運(yùn)行等。有人問(wèn)我是不是一定要跑docker,答案肯定是否定的。我之所以用docker,完全是因?yàn)樗谋憷◣Лh(huán)境)、對(duì)系統(tǒng)無(wú)污染和方便系統(tǒng)資源的查看和控制。本篇文章繼續(xù)分享下我對(duì)樹(shù)莓派的使用。
docker安裝
mysql安裝
我說(shuō)在樹(shù)莓派上跑mysql你還不信。
sudo docker run --restart=always \
-p 3306:3306 \
--name mysql \
-v $PWD/mysql/conf:/etc/mysql/conf.d \
-v $PWD/mysql/logs:/logs \
-v $PWD/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
-d hypriot/rpi-mysql:5.5
--restart=always #容器自啟動(dòng)
3306 #數(shù)據(jù)庫(kù)端口
-v $PWD/conf:/etc/mysql/conf.d #配置文件掛載路徑
MYSQL_ROOT_PASSWORD=mysqlpassword #數(shù)據(jù)庫(kù)密碼
redis安裝
sudo docker run --restart=always --name redis \
-p 6379:6379 \
-v $PWD/redis/data:/data \
-d arm32v7/redis:3.2.10 redis-server --appendonly yess
gogs安裝
有了.net core、mysql和redis,如果再能跑一個(gè)git服務(wù)器那不就吊炸天了。是的,樹(shù)莓派安裝gogs毫無(wú)壓力。有了自己的代碼管理服務(wù)器,再也不會(huì)因?yàn)镚itHub訪問(wèn)慢而煩惱了,也不會(huì)因?yàn)槟矴it的廣告而不爽了。
docker run --restart=always --name=gogs -d -p 122:22 \
-p 1080:3000 \
-v /var/gogs:/data gogs/gogs-rpi
其中1080是瀏覽器訪問(wèn)端口,你也可以映射到80。122是ssh提交代碼的端口。
注意:gogs需要依賴于mysql,第一次啟動(dòng)會(huì)引導(dǎo)你填入數(shù)據(jù)庫(kù)相關(guān)信息。后面如果重啟了樹(shù)莓派,記得先啟動(dòng)mysql,再啟動(dòng)gogs,不然不能正常訪問(wèn)。
內(nèi)外穿透
上面有了應(yīng)用,有了數(shù)據(jù)庫(kù),還有了代碼管理服務(wù)器,可我們樹(shù)莓派總歸是在一個(gè)局域網(wǎng)內(nèi)。離開(kāi)了這個(gè)網(wǎng)絡(luò)上面說(shuō)的那些功能好像就沒(méi)什么用了。那我們有沒(méi)有辦法讓我們的樹(shù)莓派變成真正的服務(wù)器呢,答案是肯定的。我相信大家剛接觸編程的時(shí)候,都幻想過(guò)自己寫的網(wǎng)站能直接給別人訪問(wèn)。那個(gè)時(shí)候應(yīng)該大多折騰過(guò)花生殼什么的,那就是個(gè)內(nèi)網(wǎng)穿透的技術(shù)。只是別人提供了免費(fèi)的服務(wù)器中轉(zhuǎn)了下,速度也是慢得感人。
今天我們來(lái)自己利用frp軟件實(shí)現(xiàn)內(nèi)外穿透,當(dāng)然還是需要服務(wù)器的 (沒(méi)有服務(wù)器的同學(xué),可以先借朋友的玩玩) 。
下載地址(各平臺(tái)的都有):https://github.com/fatedier/frp/releases
因?yàn)槲覀兪菢?shù)莓派,可以下載最新版 frp_0.29.0_linux_arm.tar.gz(裝客戶端)和 frp_0.29.0_windows_amd64.zip(windows服務(wù)器)或者frp_0.29.0_linux_amd64.tar.gz(linux服務(wù)器)
首先把frp_0.29.0_linux_amd64.tar.gz上傳到服務(wù)器,解壓,跳轉(zhuǎn)到目錄里,編輯frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
auto_token = token
然后運(yùn)行./frps運(yùn)行,啟動(dòng)服務(wù)端監(jiān)聽(tīng)。
把frp_0.29.0_linux_arm.tar.gz上傳到樹(shù)莓派,解壓,跳轉(zhuǎn)到目錄里,編輯frpc.ini
[common]
server_addr = 服務(wù)器ip
server_port = 7000
auto_token = token
[git]
type = tcp
local_ip = 127.0.0.1
local_port = 122
remote_port = 8000
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 8001
然后運(yùn)行啟動(dòng)./frpc
然后就可以外網(wǎng)訪問(wèn)了,www.服務(wù)器ip:8001 就可以訪問(wèn)git服務(wù)器了。
注意:如果是云服務(wù)器記得把對(duì)應(yīng)的8000、7000、8001端口加入到安全組里面,不然會(huì)被攔截掉。
frp的詳細(xì)用法請(qǐng)參考:https://www.cnblogs.com/sanduzxcvbnm/category/1171545.html
其他安裝
#安裝nginx
docker run -d -p 80:80 --name nginx arm32v7/nginx:1.16
#dokcer儀表盤管理
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer:arm
#一些其它樹(shù)莓派的docker應(yīng)用
https://hub.docker.com/u/arm32v7/
https://hub.docker.com/u/hypriot?page=1
https://cloud.docker.com/u/bennyzhao/repository/docker/bennyzhao/quartzui
樹(shù)莓派還能做什么
可以做物聯(lián)網(wǎng)數(shù)據(jù)的邊緣計(jì)算啊,如設(shè)備的數(shù)據(jù)采集、監(jiān)控預(yù)警、數(shù)據(jù)分析等等。再買點(diǎn)傳感器做個(gè)簡(jiǎn)陋版“小愛(ài)同學(xué)”也不是很難,甚至遙控汽車玩具什么的,能想的到的也沒(méi)什么是做不到的。
資源消耗截圖
24小時(shí)不關(guān)機(jī),零噪音,一直開(kāi)心的運(yùn)行著。
結(jié)束
推薦一個(gè)開(kāi)源物聯(lián)網(wǎng)組件:https://github.com/zhaopeiym/IoTClient,demo下載
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/zhaopei/p/11736135.html