Linux docker shaper: Управление траффиком внутри контейнера: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 21: Строка 21:
 
mkdir -p /var/run/netns
 
mkdir -p /var/run/netns
 
</PRE>
 
</PRE>
  +
  +
<PRE>
 
ln -sf /proc/$(docker inspect -f '{{.State.Pid}}' "${DOCKER_CONTAINER_UUID}")/ns/net "/var/run/netns/${DOCKER_CONTAINER_UUID}"
 
ln -sf /proc/$(docker inspect -f '{{.State.Pid}}' "${DOCKER_CONTAINER_UUID}")/ns/net "/var/run/netns/${DOCKER_CONTAINER_UUID}"
 
</PRE>
 
</PRE>
   
  +
<PRE>
  +
# ip netns
  +
6142712b1eef (id: 6)
  +
</PRE>
   
   
Строка 29: Строка 35:
   
 
<PRE>
 
<PRE>
  +
modprobe ifb numifbs=10
  +
</PRE>
  +
<PRE>
  +
ip link set dev ifb0 netns ${DOCKER_CONTAINER_UUID}
  +
ip link set dev ifb1 netns ${DOCKER_CONTAINER_UUID}
 
</PRE>
 
</PRE>
 
   
   

Версия 13:22, 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}