Roliga och pålitliga sidokanaler för kommunikation över behållare
Roliga och pålitliga sidokanaler för kommunikation över behållare (via) Här är ett mycket smart hack för att kommunicera mellan olika processer som körs i olika behållare på samma maskin. Den är baserad på smart missbruk av POSIX-rådgivningslås som tillåter en process för att skapa och upptäcka lås över byteoffsetintervall:
Dessa egenskaper kombinerade är tillräckligt för att ge en grundläggande sidokanalprimitiv för flera behållare, eftersom en process i en behållare kan ställa in ett läslås vid något intervall på
/proc/self/ns/timeoch en process i en annan behållare kan observera närvaron av det låset genom att fråga efter ett hypotetiskt skärande skrivlås.
Jag dumpade C proof-of-concept i GPT-5 för en förklaring på kodnivå, och fick den sedan hjälpa mig att ta reda på hur man kör den i Docker. Här är receptet som fungerade för mig:
cd /tmp
wget https://github.com/crashappsec/h4x0rchat/blob/9b9d0bd5b2287501335acca35d070985e4f51079/h4x0rchat.c
docker run --rm -it -v "$PWD:/src" \
-w /src gcc:13 bash -lc 'gcc -Wall -O2 \
-o h4x0rchat h4x0rchat.c && ./h4x0rchat'
Kör det docker run linje i två separata terminalfönster och du kan chatta mellan de två så här:

