上一篇樹莓派也跑Docker和.NET Core有對樹莓派作簡單的介紹。包括系統的燒錄、基本的設置、docker的安裝、.net core的運行等。有人問我是否是必定要跑docker,答案確定是否認的。我之因此用docker,徹底是由於它的便利(帶環境)、對系統無污染和方便系統資源的查看和控制。本篇文章繼續分享下我對樹莓派的使用。html
我說在樹莓派上跑mysql你還不信。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 #容器自啓動 3306 #數據庫端口 -v $PWD/conf:/etc/mysql/conf.d #配置文件掛載路徑 MYSQL_ROOT_PASSWORD=mysqlpassword #數據庫密碼
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
有了.net core、mysql和redis,若是再能跑一個git服務器那不就吊炸天了。是的,樹莓派安裝gogs毫無壓力。有了本身的代碼管理服務器,不再會由於GitHub訪問慢而煩惱了,也不會由於某Git的廣告而不爽了。linux
docker run --name=gogs -p 122:22 \ -p 1080:3000 \ -v /var/gogs:/data gogs/gogs-rpi
其中1080是瀏覽器訪問端口,你也能夠映射到80。122是ssh提交代碼的端口。
注意:gogs須要依賴於mysql,第一次啓動會引導你填入數據庫相關信息。後面若是重啓了樹莓派,記得先啓動mysql,再啓動gogs,否則不能正常訪問。nginx
上面有了應用,有了數據庫,還有了代碼管理服務器,可咱們樹莓派總歸是在一個局域網內。離開了這個網絡上面說的那些功能好像就沒什麼用了。那咱們有沒有辦法讓咱們的樹莓派變成真正的服務器呢,答案是確定的。我相信你們剛接觸編程的時候,都幻想過本身寫的網站能直接給別人訪問。那個時候應該大多折騰過花生殼什麼的,那就是個內網穿透的技術。只是別人提供了免費的服務器中轉了下,速度也是慢得感人。
今天咱們來本身利用frp軟件實現內外穿透,固然仍是須要服務器的 (沒有服務器的同窗,能夠先借朋友的玩玩) 。git
下載地址(各平臺的都有):https://github.com/fatedier/frp/releases
由於咱們是樹莓派,能夠下載最新版 frp_0.29.0_linux_arm.tar.gz(裝客戶端)和 frp_0.29.0_windows_amd64.zip(windows服務器)或者frp_0.29.0_linux_amd64.tar.gz(linux服務器)github
首先把frp_0.29.0_linux_amd64.tar.gz上傳到服務器,解壓,跳轉到目錄裏,編輯frps.iniweb
[common] bind_addr = 0.0.0.0 bind_port = 7000 auto_token = token
而後運行./frps運行,啓動服務端監聽。redis
把frp_0.29.0_linux_arm.tar.gz上傳到樹莓派,解壓,跳轉到目錄裏,編輯frpc.inisql
[common] server_addr = 服務器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
而後運行啓動./frpcdocker
而後就能夠外網訪問了,www.服務器ip:8001 就能夠訪問git服務器了。
注意:若是是雲服務器記得把對應的8000、7000、8001端口加入到安全組裏面,否則會被攔截掉。
frp的詳細用法請參考: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 #一些其它樹莓派的docker應用 https://hub.docker.com/u/arm32v7/ https://hub.docker.com/u/hypriot?page=1 https://cloud.docker.com/u/bennyzhao/repository/docker/bennyzhao/quartzui
能夠作物聯網數據的邊緣計算啊,如設備的數據採集、監控預警、數據分析等等。再買點傳感器作個簡陋版「小愛同窗」也不是很難,甚至遙控汽車玩具什麼的,能想的到的也沒什麼是作不到的。
24小時不關機,零噪音,一直開心的運行着。
推薦一個開源物聯網組件:https://github.com/zhaopeiym/IoTClient,demo下載