Linux docker shaper: Управление траффиком внутри контейнера: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 45: | Строка 45: | ||
+ | <PRE> |
||
+ | ip netns exec ${DOCKER_CONTAINER_UUID} bash |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | ifconfig -a |
||
+ | eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 |
||
+ | inet 192.168.255.5 netmask 255.255.255.0 broadcast 192.168.255.255 |
||
+ | ether 02:42:c0:a8:ff:05 txqueuelen 0 (Ethernet) |
||
+ | RX packets 1680190 bytes 287513973 (287.5 MB) |
||
+ | RX errors 0 dropped 0 overruns 0 frame 0 |
||
+ | TX packets 1094755 bytes 119082164 (119.0 MB) |
||
+ | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
||
+ | ifb0: flags=130<BROADCAST,NOARP> mtu 1500 |
||
+ | ether b2:fa:b3:1f:cc:21 txqueuelen 32 (Ethernet) |
||
+ | RX packets 0 bytes 0 (0.0 B) |
||
+ | RX errors 0 dropped 0 overruns 0 frame 0 |
||
+ | TX packets 0 bytes 0 (0.0 B) |
||
+ | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
||
+ | ifb1: flags=130<BROADCAST,NOARP> mtu 1500 |
||
+ | ether ca:44:06:d0:6d:c9 txqueuelen 32 (Ethernet) |
||
+ | RX packets 0 bytes 0 (0.0 B) |
||
+ | RX errors 0 dropped 0 overruns 0 frame 0 |
||
+ | TX packets 0 bytes 0 (0.0 B) |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | ip link set up dev ifb0 |
||
+ | ip link set up dev ifb1 |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | |||
+ | <PRE> |
||
+ | </PRE> |
||
Версия 13:26, 12 марта 2020
Ограничение траффика в контейнере
В примере 6142712b1eef это индентификатор контейнера
Получить PID процесса докера (внутри контейнера этот процесс будет иметь PID=1)
docker inspect -f '{{.State.Pid}}' "6142712b1eef"
export DOCKER_CONTAINER_UUID="6142712b1eef"
mkdir -p /var/run/netns
ln -sf /proc/$(docker inspect -f '{{.State.Pid}}' "${DOCKER_CONTAINER_UUID}")/ns/net "/var/run/netns/${DOCKER_CONTAINER_UUID}"
# ip netns 6142712b1eef (id: 6)
modprobe ifb numifbs=10
ip link set dev ifb0 netns ${DOCKER_CONTAINER_UUID} ip link set dev ifb1 netns ${DOCKER_CONTAINER_UUID}
ip netns exec ${DOCKER_CONTAINER_UUID} bash
ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.255.5 netmask 255.255.255.0 broadcast 192.168.255.255 ether 02:42:c0:a8:ff:05 txqueuelen 0 (Ethernet) RX packets 1680190 bytes 287513973 (287.5 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1094755 bytes 119082164 (119.0 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ifb0: flags=130<BROADCAST,NOARP> mtu 1500 ether b2:fa:b3:1f:cc:21 txqueuelen 32 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ifb1: flags=130<BROADCAST,NOARP> mtu 1500 ether ca:44:06:d0:6d:c9 txqueuelen 32 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B)
ip link set up dev ifb0 ip link set up dev ifb1