物聯網學習日記15

1.docker exec
解析:在運行的容器中執行命令。
[1]-d:分離模式,在後臺運行
[2]-i:即使沒有附加也保持STDIN打開
[3]-t:分配一個僞終端

2.Go語言與C/C++進行交互
解析:Go調用C/C++的方式:
[1]C:直接調用C API
[2]C++:通過實現一層封裝的C接口來調用C++接口

3.從certs階段拷貝CA證書
解析:

RUN apk --update add ca-certificates
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

4.在指定的階段爲鏡像添加tag
解析:只需要在build鏡像的時候簡單的使用–target=NAMEOFTHESTAGE。比如,docker build -t scboffspring/blog-multistage-go:build . --target=build。

5.Docker基礎鏡像
解析:
[1]scratch:空的基礎鏡像,最小的基礎鏡像
[2]busybox:帶一些常用的工具,方便調試,以及它的一些擴展busybox:glibc
[3]alpine:另一個常用的基礎鏡像,帶包管理功能,方便下載其它依賴的包

6.go defer[延遲函數]
解析:每當defer執行的時候,它後面的函數值和函數參數會被求值,但是函數不會立即調用。

7.Go垃圾收集機制
解析:引用計數,標記-清除[mark and sweep],複製收集,分代收集[generation],三色標記算法等。go語言垃圾回收總體採用的是經典的mark and sweep算法。如下所示:
[1]v1.3以前版本STW[Stop The World]
[2]v1.3 Mark STW,Sweep並行
[3]v1.5 三色標記法
[4]v1.8 混合寫屏障[hybrid write barrier]

8.docker machine
解析:docker machine是docker提供的一個命令行工具,通過這個工具可以遠程管理、控制多臺主機,例如在每臺主機上安裝、配置docker,在遠程主機上執行各種docker指令等。如下所示:

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
sudo curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine
sudo mv /tmp/docker-machine /usr/local/bin/docker-machine
sudo chmod +x /usr/local/bin/docker-machine

9.Docker客戶端和服務器
解析:
[1]Docker客戶端:Docker架構是C/S結構,客戶端好理解,直接用Docker命令就行。
[2]Docker服務器:Docker Daemon是服務器的組件,運行在Docker服務器上,負責創建、運行、監控容器,構建、存儲鏡像。默認設置下,Docker服務器只接收來自本機的請求,如果要接收來自遠程客戶端的請求,就需要做配置。

gedit /etc/systemd/system/multi-user.target.wants/docker.service
在ExecStart後面添加-H tcp://0.0.0.0,表明可以接收任何IP的客戶端連接
systemctl daemon-reload
systemctl restart docker.service

10.#!/usr/bin/env bash和#!/usr/bin/bash區別
解析:
[1]#!/usr/bin/env bash:lends you some flexibility on different systems
[2]#!/usr/bin/bash:gives you explicit control on a given system of what executable is called

11.journalctl日誌查看方法
解析:日誌管理工具journalctl是Centos7上專有的日誌管理工具,該工具是從message這個文件裏讀取信息。Systemd統一管理所有Unit的啓動日誌。帶來的好處就是可以只用journalctl一個命令,查看所有日誌[內核日誌和應用日誌]。日誌的配置文件是/etc/systemd/journald.conf。

12.Ubuntu16.04配置阿里雲docker鏡像加速器
解析:sudo vim /etc/docker/daemon.json:

{ 
"registry-mirrors": ["https://ybx5o03l.mirror.aliyuncs.com"] 
}

然後執行如下命令:

systemctl daemon-reload
systemctl restart docker
systemctl status docker

13.PMC
解析:PMC即Production material control的縮寫。是指對生產計劃與生產進度的控制,以及對物料的計劃、跟蹤、收發、存儲、使用等各方面的監督與管理和呆滯料的預防處理工作。PMC部主要有兩方面的工作內容:即PC[生產計劃、生產進度的管理]與MC[物料的計劃、採購、跟蹤、收發、存儲、使用等各方面的監督與管理,以及廢料的預防與處理工作]。

14.git remote add upstream git://github.com/user/repo_name.git
解析:To keep track of the original repo, you need to add another remote named upstream.

15.git remote rm <repo-name>
解析:刪除遠程倉庫地址。

16.git fetch upstream
解析:從遠程倉庫抓取數據到本地:

17.git rebase upstream / master
解析:
18.git pull --rebase upstream master
解析:

19.關聯遠程分支
解析:git branch --set-upstream-to origin/dev dev

20.git remote -v
解析:查看一下遠程倉庫的情況:

$ git remote -v
origin  https://github.com/Flamingo93/spring-framework.git (fetch)
origin  https://github.com/Flamingo93/spring-framework.git (push)
upstream        https://github.com/spring-projects/spring-framework.git (fetch)
upstream        https://github.com/spring-projects/spring-framework.git (push)

21.樹莓派傳感器
解析:配備GPIO插件擴展板,可提供聲卡/顯卡、傳感器、功率繼電器等額外或升級功能。還可使用其它外圍設備,比如相機、觸摸屏、GPS天線甚至是經典的任天堂紅白機。

22.物聯網體系結構
解析:
[1]感知層是完成數據採集的關鍵部分,包含二維碼標籤及識讀器、RFID標籤及讀寫器、圖像傳感器、GPS定位、各類物理量傳感器、M2M終端、無線網關等。
[2]網絡層又稱爲傳輸層,包含接入層、匯聚層和核心交換層。
[3]應用層包含中間件、雲計算和用戶各種應用操作,是對感知層所採集的數據在雲計算平臺進行處理,爲用戶提供具體服務。

23.通用I/O端口GPIO
解析:GPIO爲通用輸入/輸出端口,用戶可以通過GPIO口與外設進行數據交互。樹莓派設有40引腳的GPIO接口,使用非常方便。

24.OneNET
解析:OneNET是中國移動通信集團推出的專業物聯網開放雲平臺,提供了豐富的通信協議和開發工具,使各類終端設備能方便接入網絡,實現遠程數據傳輸、數據存儲、數據管理。

25.RTSP、RTMP和HTTP協議
解析:
[1]RTSP[Real Time Streaming Protocol],RFC2326,實時流傳輸協議
[2]RTMP[Real Time Messaging Protocol]。
[3]目前多數網絡攝像機支持RTSP、ONVIF等通用的協議,而支持RTMP比較少
[4]通常用RTSP、RTMP做直播,用HTTP做點播
[5]RTSP、RTMP、HTTP都是在應用應用層
[6]RTMP和RTSP協議是流媒體協議

參考文獻:
[1]搞懂Go垃圾回收:https://blog.csdn.net/MoFengLian/article/details/100654591
[2]Cannot connect to the Docker daemon:https://blog.csdn.net/qq_36320549/article/details/90178026

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章