lian2
Posted 坑坑尔不坑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lian2相关的知识,希望对你有一定的参考价值。
这个https://www.cnblogs.com/6262lonely/articles/11119625.html里收集了在kt工作时遇到问题后查找的一些链接。那时的自己,问题解决了就行,未将每一个问题仔细整理。在魔兽世界吧里面看到了几篇很老的帖子,那时的网友大部分还是很可爱。这一篇只能是杂记了……
看到了一个运维开发的博客,看到了docker inspect --format这篇。
https://www.escapelife.site/posts/8bf741fb.html#toc-heading-2
之前看和k8s有关的视频的时候,看到docker inspect --format这块,只是用了下。后面的工作中就用如下格式了:
docker inspect containerID | grep -i network
docker inspect 输出的是json格式的数据,而docker inspect --format则使用给定的Go模板格式化输出。
-f, --format string Format the output using the given Go template
JSON中的数据类型:(插入的是Python格式的,需要现在前面加#号)
# number:和JavaScript的number完全一致; # boolean:就是JavaScript的true或false; # string:就是JavaScript的string; # null:就是JavaScript的null; # array:就是JavaScript的Array表示方式——[]; # object:就是JavaScript的 ... 表示方式。
并且,JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了。为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""。
参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023021554858080
Go模板语法:
# 输出文本: . ,其中 . 表示当前的数据对象。 # 输出变量: .variable ,其中 variable 表示要输出的变量名。 # 输出变量的某个字段: .variable.field ,其中 field 表示要输出的字段名。 # 条件判断: if condition ... end ,其中 condition 表示要判断的条件,如果条件成立,会执行 ... 中的代码。 # 条件判断和 else: if condition ... else ... end ,其中 else 表示条件不成立时要执行的代码。 # 循环: range array ... end ,其中 array 表示要循环的数组或切片,... 中的代码会对数组或切片中的每个元素进行渲染。 # 变量赋值: $variable := value ,其中 variable 表示要赋值的变量名,value 表示要赋给变量的值。 # 模板嵌套: template "name" . ,其中 name 表示要嵌套的模板名称,. 表示要传递给模板的数据对象。 # 函数调用: function parameter ,其中 function 表示要调用的函数名,parameter 表示要传递给函数的参数。
ChatGPT给的答案。
Go官方:https://golang.org/pkg/text/template/
docker network inspect bridge
[
"Name": "bridge",
"Id": "bec9bbf537fd27653663bb7e8da59945280f4d60a48b6eb9f2094507eca56ecb",
"Created": "2023-04-08T09:35:40.370935879+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM":
"Driver": "default",
"Options": null,
"Config": [
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
]
,
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom":
"Network": ""
,
"ConfigOnly": false,
"Containers":
"0d12098b1009edcdeb1a7e3d124a124e0d20bc16aa480f64212fac1e6096a97d":
"Name": "inspiring_curie",
"EndpointID": "a3dadd39d62010ebb1a0e4f32687033780156e385f462b3ee6734a6c36b05155",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
,
"fccb368b8e7d4b50c66c8057bf344fad049f17d3f46415a97b6c79cd30473671":
"Name": "ecstatic_dijkstra",
"EndpointID": "525ebea7378729afd888c5e62f77ea2af0e4744fc848b7d24a7bdbfe9bb708bd",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
,
"Options":
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
,
"Labels":
]
`点号表示当前对象及上下文,和Java
、C++
中的this
类似,可以直接通过点来获取当前对象。另外,如果返回结果也是一个Struct
对象(Json
中以花括号/大括号包含),则可以直接通过点号级联调用,获取子对象的指定属性值。`
[root@k8s-rancher ~]# docker network inspect -f \'.Name\' bridge bridge
`如果需要获取的属性名称包含点号(比如下列示例数据)或者以数字开头,则不能直接通过级联调用获取信息。因为属性名称中的点号会被解析成级联信息,进而导致返回错误结果。即便使用引号将其包含也会提示语法格式错误。此时,需要通过index
来读取指定属性信息。`
`index是Go语言的内置函数,用于获取一个数组或切片(.Options)中指定索引位置(com.docker.network.bridge.name)的元素。`
[root@k8s-rancher ~]# docker inspect -f \'/*读取网络在hosts上的名称*/index .Options "com.docker.network.bridge.name"\' bridge
docker0
# 自定义变量
[root@k8s-rancher ~]# docker inspect -f \'printlnrange $p,$conf := .NetworkSettings.Ports$p -> (index $conf 0).HostPortprintlnend\' fcc
443/tcp -> 443
80/tcp -> 80
# range
[root@k8s-rancher ~]# docker inspect --format \'range .Containers.NameprintlnelseWith No Containersend\' bridge
inspiring_curie
ecstatic_dijkstra
[root@k8s-rancher ~]# docker inspect --format \'range .Containers.NameprintlnelseWith No Containersend\' none
With No Containers
# index(Config属性一个Map)
[root@k8s-rancher ~]# docker inspect bridge -f \'(index .IPAM.Config 0).Gateway\'
172.17.0.1
[root@k8s-rancher ~]# docker inspect bridge -f \'(index .IPAM.Config 0).Subnet\'
172.17.0.0/16
# else
1)not
[root@k8s-rancher ~]# docker inspect -f \'if not .State.Restarting容器没有配置重启策略end\' $(docker ps -q)
SQL 联合查询
http://www.3lian.com/edu/2013/05-14/69869.html
内联inner join (类似交集)、左联left outer join 、右联right outer join 、全联full outer join(类似并集)。
内联:(类似交集)
select * from T1 ,T3 where T1.userid = T3.userid(其实这样的结果等同于select * from T1 inner join T3 on T1.userid=T3.userid
SELECT S_USER.USERNAME, S_OFFICE.FULLNAME FROM S_USER, S_OFFICE WHERE S_USER.OFFICEID = S_OFFICE.OFID;
相当于
SELECT S_USER.USERNAME, S_OFFICE.FULLNAME FROM S_USER INNER JOIN S_OFFICE ON S_USER.OFFICEID = S_OFFICE.OFID;
以上是关于lian2的主要内容,如果未能解决你的问题,请参考以下文章