Ich versuche, die Bandbreitendrosselung für die Docker-Container vorzunehmen. Um die Downlink-Bandbreite zu begrenzen, kann ich zuerst die veth-Schnittstelle des Containers finden und tc: tc qdisc add dev vethpair1 root tbf rate 1mbit latency 50ms burst 10000
verwenden. Wenn ich die Uplink-Bandbreite begrenzen möchte, muss ich --cap-add=NET_ADMIN
angeben, wenn ich den Container hochfahre und den gleichen TC-Befehl auf eth0
innerhalb des Containers verwende. Gibt es eine nicht aufdringliche Art, dies zu tun, so dass ich jeden Container verwalten kann, ohne ihm Privilegien zu geben?Verwenden Sie tc, um die ausgehende Netzwerkbandbreite des Dockercontainers zu drosseln.
3
A
Antwort
1
Sie könnten Docker sagen, LXC unter der Haube zu verwenden: Verwenden Sie die Option -e lxc
.
Create your containers with a custom LXC directive to put them into a **traffic class** :
`docker run --lxc-conf="lxc.cgroup.net_cls.classid = 0x00100001" your/image /bin/stuff`
Überprüfen Sie die official documentation darüber, wie Bandbreite Grenzen dieser Klasse anzuwenden.
Hinweis: Die --storage-driver=devicemapper
und -e lxc
Optionen sind für die Docker Daemon, nicht für die Docker-Client Sie verwenden, wenn docker run .......
ausgeführt wird.
Sie können auch diese durch das tun:
mkdir /var/run/netns
ln -sf /proc/`docker inspect -f '{{ .State.Pid }}' YOUR_CONTAINER`/ns/net /var/run/netns/SOME_NAME
ip netns exec SOME_NAME iptables -L -nv
Verwandte Themen
- 1. Gibt es eine Möglichkeit, die Netzwerkbandbreite zu drosseln, die ein svn checkout ausführt?
- 2. Wie kann ich Reaktive Erweiterungen verwenden, um SearchPane.SuggestionsRequested zu drosseln?
- 3. Zugriff auf den Protokollordner des ausgeführten Dockercontainers
- 4. Alternative zu `tc` Befehl oder irgendeine API mit` tc` Funktionalität
- 5. Der beste Weg, um E-Mail unter Windows Server 2008 zu drosseln
- 6. Melden Sie ausgehende Nachricht
- 7. Proxy verwenden, um teure ausgehende HTTP-Anforderungen zwischenzuspeichern?
- 8. Soll ich eine 301-Weiterleitung verwenden, um ausgehende Klicks zu verfolgen?
- 9. Verwenden Sie jquery, um die Breite des Containers um 10 zu vergrößern rem
- 10. Verschiedene ausgehende IPs in Perl verwenden
- 11. Wie können Sie eine lang laufende Befehlszeilen-EXE drosseln, um ein Hängenbleiben der CPU zu vermeiden?
- 12. RabbitMQ wie den Verbraucher zu drosseln
- 13. Verwenden Sie Unapply, um identische Klassen zu extrahieren
- 14. Verwenden Sie die Eingabetaste, um zu den Eingängen zu gehen
- 15. Wie drosseln Sie die Bandbreite einer Socket-Verbindung in C?
- 16. So erhalten Sie die letzte ausgeführte TC ohne Duplikat
- 17. Verwenden Sie CSS, um mehrere Elemente zu erstellen, die die gesamte Breite des übergeordneten Elements einnehmen
- 18. Unterscheidet sich die Netzwerkbandbreite auf Azure-Websites von virtuellen Maschinen?
- 19. Vorlagen: Verwenden Sie Vorwärtsdeklarationen, um die Kompilierzeit zu reduzieren?
- 20. Wie legen Sie verschiedene Werte für SMPTE TC und MXF TC in der gleichen Datei fest?
- 21. wie tc Server-Instanz
- 22. Wie wird die Netzwerkbandbreite zwischen Client und Server gemessen?
- 23. Verwenden Sie Java drawString, um die folgende Textausrichtung zu erreichen
- 24. PHP - Verwenden Sie Paypal, um die Transaktion zu tun
- 25. Verwenden Sie GoogleAnalyticsTracker in Android, um die Anwendungsversion zu verfolgen
- 26. Verwenden Sie die mysql-Abfrage, um den Zeitstempelwert zu überprüfen
- 27. Verwenden Sie ffmpeg, um die Bildgröße zu ändern
- 28. Verwenden Sie die Taste, um das Bootstrap-Karussell zu wechseln?
- 29. Verwenden Sie Numba, um für die Schleife zu beschleunigen
- 30. Verwenden Sie die Bildansicht, um eine neue Aktivität zu öffnen?
Dank. Ich habe net_cls versucht, aber es hat nicht funktioniert. Liegt es daran, dass ich die LXC-Abstraktion nicht verwendet habe? Ich werde später LXC versuchen. –