Docker从Dockernetworking中断开所有容器
我有dockernetworking“my_network”。 我想用docker network rm my_network
删除这个docker network rm my_network
。 在此之前,我应该断开所有我的容器从这个networking。 我可以使用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": {} } ]
如果我只有几个容器,手动断开是可以的,但如果我有50个容器,我有问题。 如何使用单个或多个命令断开所有容器与这个networking的连接?
docker network inspect
有一个格式选项 。
这意味着您可以列出所有容器名称:
docker network inspect -f '{{range .Containers}}{{.Name}}{{end}}' network_name
这应该很容易,通过脚本,读取每个名称,并调用docker network disconnect
。
wwerner在下面的评论中提出了以下命令:
for i in ` docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' network_name`; do docker network disconnect -f network_name $i; done;
在多行中的可读性:
for i in ` docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' network_name`;\ do \ docker network disconnect -f network_name $i; \ done;
添加:
请注意,格式中有一个空格,而不是以空格分隔名称的答案。
- 将函数输出保存到参数中命名的variables中
- 将Docker ENVvariables传递给Rails应用程序
- Dockerfile:如何用build-arg的replace环境variables中的占位符?
- “解决IP失败”; joindockerized serf代理时,bash脚本中的“查找错误”
- Docker容器中的jHipster中的Maven-Wrapper:FileNotFoundException
- 不能访问docker for windows linux容器中的elasticsearch
- 在Docker CMD中执行后台进程的命令
- Docker:当Checkstyles检测到错误时,放弃
- 来自docker容器的ERR_EMPTY_RESPONSE