J'utilise tc pour limiter le taux d'envoi dans un conteneur docker. Ajout ci-dessous script dans Dockerfile:Impossible d'utiliser tc dans le conteneur docker
tc qdisc add dev eth0 root handle 1: htb default 2
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2mbit ceil 2mbit prio 2
tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10
tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 192.168.1.124 flowid 1:2
Run docker sous le compte root via cette commande:
docker run --cap-add=NET_ADMIN --name lqt_build -d -p 8443:8443 -p 443:443 -p 3478:3478 lqt_build
Mais montrent toujours cette erreur:
Step 25 : RUN cd /usr/share/ta/ && sudo ./tt rate
---> Running in fb6a4477ad6c
RTNETLINK answers: Operation not permitted
RTNETLINK answers: Operation not permitted
RTNETLINK answers: Operation not permitted
RTNETLINK answers: Operation not permitted
We have an error talking to the kernel
[8] System error: read parent: connection reset by peer
Il semble que le noyau empêche des applications dans le conteneur de modifier certains paramètres du noyau même s'ils s'exécutent en tant que root. Je suppose que le conteneur n'a pas son propre noyau mais fonctionne sur le noyau partagé avec (potentiellement) de nombreux autres conteneurs, donc il ne peut pas être autorisé à toucher les paramètres du noyau sous-jacent. Est-ce que quelqu'un a de l'expérience avec ce problème?
il semble que vous venez de modifier la carte réseau du conteneur de l'hôte, voir https://github.com/ahervieu/Docker-Cgroup-Doc – user2915097
Merci. J'ai trouvé la cause première. –