Skip to content

Instantly share code, notes, and snippets.

@tgeorgiev
Created September 12, 2016 11:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tgeorgiev/b18a3e0d02b0efec09a7341f6d12ec16 to your computer and use it in GitHub Desktop.
Save tgeorgiev/b18a3e0d02b0efec09a7341f6d12ec16 to your computer and use it in GitHub Desktop.
Script to reproduce docker network removal issue: network has active endpoints
#!/bin/sh
# for more info see https://github.com/docker/docker/issues/19261
# Provide values to connect to nodes
cert="client.pem"
key="client-key.pem"
connectionstringnode1="-H=node1:2376 --tls --tlscert=$cert --tlskey=$key"
connectionstringnode2="-H=node2:2376 --tls --tlscert=$cert --tlskey=$key"
networkname="test-net"
containerspernode=4
echo "Creating network $networkname"
docker $connectionstringnode1 network create --driver overlay $networkname
echo "Creating containers"
for nodei in {1..2}
do
for containeri in `eval echo {1..$containerspernode}`
do
connectionstringvar="connectionstringnode${nodei}"
connectionstring=${!connectionstringvar}
containername="alp${nodei}${containeri}"
docker $connectionstring run -itd --name $containername --network $networkname alpine sh
done
done
echo "Deleting containers (parallel)"
pids=""
for nodei in {1..2}
do
for containeri in `eval echo {1..$containerspernode}`
do
connectionstringvar="connectionstringnode${nodei}"
connectionstring=${!connectionstringvar}
containername="alp${nodei}${containeri}"
docker $connectionstring rm -fv $containername &
pids="$pids $!"
done
done
wait $pids
# Just for incase sleep 5 seconds, although it does not really matter
sleep 5
echo "Inspecting $networkname"
docker $connectionstringnode1 network inspect $networkname
echo "Deleting network $networkname"
docker $connectionstringnode1 network rm $networkname
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment