nic*_*bpe 5 bash docker docker-networking
我有docker网络"my_network".我想删除这个docker网络docker network rm my_network.在此之前,我应该断开我的所有容器与此网络.我可以使用docker network inspect并获得输出
[
{
"Name": "my_network",
"Id": "aaaaaa",
"Scope": "some_value",
"Driver": "another_value",
"EnableIPv6": bool_value,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.0.0.0/1"
}
]
},
"Internal": false,
"Containers": {
"bbb": {
"Name": "my_container_1",
"EndpointID": "ENDPOITID1",
"MacAddress": "MacAddress1",
"IPv4Address": "0.0.0.0/1",
"IPv6Address": ""
},
"ccc": {
"Name": "my_container_2",
"EndpointID": "ENDPOINTID2",
"MacAddress": "MacAddress2",
"IPv4Address": "0.0.0.0/2",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Run Code Online (Sandbox Code Playgroud)
如果我只有几个容器可以手动断开,但如果我有50个容器我有问题.如何使用单个或多个命令断开此网络中的所有容器?
docker network inspect有一个格式选项.
这意味着您可以列出所有Container名称:
docker network inspect -f '{{range .Containers}}{{.Name}}{{end}}' network_name
Run Code Online (Sandbox Code Playgroud)
然后,通过脚本,读取每个名称和调用应该很容易docker network disconnect.
for i in ` docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' network_name`; do docker network disconnect -f network_name $i; done;
Run Code Online (Sandbox Code Playgroud)
多行可读性:
for i in ` docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' network_name`;\
do \
docker network disconnect -f network_name $i; \
done;
Run Code Online (Sandbox Code Playgroud)
添加:
请注意,格式中有一个空格,而不是用空格分隔名称的答案.
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |