物联网学习日记17

1.CANBus系统
解析:CANBus系统通过相应的CAN接口连接工业设备[如限位开关、光电传感器、管道阀门、电机启动器、过程传感器、变频器、显示板、PLC和PCI工作站等]构成低成本网络。

2.GPIO[General Purpose Input Output]
解析
[1]人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。
[2]GPIO就是芯片上的一根干啥都行的引脚。

3.docker port
解析:列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

4.WORKDIR
解析:WORKDIR指令设置Dockerfile中的任何RUN,CMD,ENTRPOINT,COPY和ADD指令的工作目录。如果WORKDIR指定的目录不存在,即使随后的指令没有用到这个目录,都会创建。

5.docker volume ls
解析:查看所有卷标。

6.docker volume inspect xxx
解析:查看具体的volume对应的真实地址。

7.docker-compose中的volumes
解析:docker-compose中有两种方式可以设置volumes,并且都是可持久化的。
[1]使用具体路径直接挂载到本地,特点就是直观。
[2]使用卷标的形式,特点就是简洁,但是不知道数据到底在本地的什么位置,需要通过卷标查看。

8.docker参数--restart=always的作用
解析:创建容器时没有添加参数--restart=always,导致的后果是当Docker重启时,容器未能自动启动。

9.docker默认的存储位置
解析:docker的所有images及相关信息存储位置为/var/lib/docker。

10.未显式声明网络环境docker-compose.yml
解析:使用docker-compose up启动容器后,这些容器都会被加入app_default网络中。使用docker network ls可以查看网络列表,docker network inspect <container id>可以查看对应网络的配置。

11.docker的network模块
解析:
[1]bridge:这是容器默认的网络驱动,如果创建容器时没有指定驱动,用的就是这个。
[2]host:移除容器自己独立的网络配置,直接使用主机的网络配置。
[3]overlay:连接多个容器。
[4]macvlan:允许给docker容器绑定mac地址。
[5]none:关闭该容器的网络,在一些不需要网络的批处理任务时,还是有用的。
使用场景,如下所示:
[1]当在一台主机上的多个独立的容器,用bridge模式
[2]当需要将容器的网络环境和主机的网络环境绑定时,用host模式
[3]当需要多个主机上的多个容器相互通信,用overlay网络

12.docker网络子命令
解析:
[1]docker network connect:将容器连接到网络。
[2]docker network create:创建新的Docker网络。
[3]docker network disconnect:断开容器的网络。
[4]docker network inspect:提供Docker网络的详细配置信息。
[5]docker network ls:用于列出运行在本地Docker主机上的全部网络。
[6]docker network prune:删除Docker主机上全部未使用的网络。
[7]docker network rm:删除Docker主机上指定网络。

13.tmpfs
解析:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统。

14.docker tag
解析:标记本地镜像,将其归入某一仓库。如下所示:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

15.ERROR: 2 matches found based on name: network securitytest_basic is ambiguous
解析:

docker network ls
docker network rm <hash> <hash>

16.Docker Compose
解析:Docker Compose是Docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用Docker Compose,可以通过YAML文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

17.privileged: true
解析:container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。

18.Docker volume挂载时文件或文件夹不存在[2]
解析:host上文件夹存在,但为空:
[1]存在的空文件夹A[host]
[2]存在的非空文件夹B[container]
[3]container中文件夹B的内容被清空

19.Eclipse Mosquitto
解析:Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.

20.PublishTopic=
解析:edgexcontext.Complete([]byte outputData) - Will send data back to back to the message bus with the topic specified in the PublishTopic= property.

21.Go版本管理工具
解析:在go1.11版本前,想要对go语言包进行管理,只能依赖第三方库实现,比如Vendor,GoVendor,GoDep,Dep,Glide等。

22.开启GO111MODULE
解析:用环境变量GO111MODULE开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。如下所示:
[1]GO111MODULE=off无模块支持,go会从GOPATH和vendor文件夹寻找包。
[2]GO111MODULE=on模块支持,go会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖。
[3]GO111MODULE=auto在$GOPATH/src外面且根目录有go.mod文件时,开启模块支持。
[4]在使用模块的时候,GOPATH是无意义的,不过它还是会把下载的依赖储存在$GOPATH/src/mod中,也会把go install的结果放在$GOPATH/bin中。

23.Go交叉编译
解析:

# mac上编译linux和windows二进制
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build 
 
# linux上编译mac和windows二进制
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build 
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
 
# windows上编译mac和linux二进制
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go

24.进入Docker执行命令
解析:docker run -i -t ubuntu:16.04 /bin/bash

25.Docker容器状态
解析:
[1]created[已创建]
[2]restarting[重启中]
[3]running[运行中]
[4]removing[迁移中]
[5]paused[暂停]
[6]exited[停止]
[7]dead[死亡]

参考文献:
[1]详解Docker端口映射与容器互联:https://www.cnblogs.com/sohuhome/p/9847935.html
[2]Docker volume 挂载时文件或文件夹不存在:https://blog.csdn.net/weixin_33953249/article/details/88759709
[3]Eclipse Mosquitto:https://mosquitto.org/

发布了400 篇原创文章 · 获赞 423 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/104712644