Initialize a one-node Swarm
docker swarm init
in case you are asked to pick a specific network interface:
ifconfig
# for example if eth1 was picked
docker swarm init --advertise-addr eth1
Deploy a Docker Swarm service
docker-compose stop
docker stack deploy -c docker-compose.yml orca
docker service ls
docker service ps orca_orca
docker service scale orca_orca=3
docker stack rm orca
Run Docker Traffic Control daemon
https://github.com/lukaszlach/docker-tc
docker run -d \
--name docker-tc \
--network host \
--cap-add NET_ADMIN \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/docker-tc:/var/docker-tc \
lukaszlach/docker-tc
Run ping command
docker network create test
docker run -it --name ping \
--net test \
--label "com.docker-tc.enabled=1" \
--label "com.docker-tc.delay=100ms" \
--label "com.docker-tc.loss=50%" \
--label "com.docker-tc.duplicate=50%" \
busybox \
ping google.com
Alter traffic control rules
curl -d'delay=300ms' localhost:4080/ping