Então eu consegui fazer isso funcionar finalmente. Meu problema é que eu não especifiquei qual protocolo UDP usará - neste caso, 12201. Para corrigir isso, você precisa começar assim:
docker run -t -p 9000:9000 -p 12201:12201/udp graylog2/allinone
O que estou tentando alcançar é redirecionar a impressão python de um contêiner docker para o outro (sem nenhuma modificação dentro do código python), com graylog2 (atualmente estou usando uma versão mais antiga, tudo em um).
Portanto, minha primeira instância do docker contém o servidor graylog. Eu criei segunda instância com o Dockerfile, usando o Ubuntu e incluí um script simples que imprime a hora atual:
from datetime import datetime
import time
date = datetime.now()
print(str(date.day) + '/' + str(date.month) + '/' + str(date.year))
while True:
date = datetime.now()
print(str(date.hour) + ':' + str(date.minute) + ':' + str(date.second))
time.sleep(1)
Estou usando o comando abaixo para iniciar o graylog
docker run -t -p 9000:9000 -p 12201:12201 graylog2/allinone
e para iniciar o segundo contêiner e executar meu script:
docker run --log-driver=gelf --log-opt gelf-address=udp://0.0.0.0:12201 test python -i ../test.py
Estou tentando enviar meus logs para o GELF UDP, não tenho certeza se é o caminho certo, porque não há registros, seja qual for o endereço / porta que eu escolher. Por enquanto não consigo nem mesmo fazer um eco simples do bash, mas não tenho certeza de onde está o problema em si.
Visão geral de minha "entrada":
Então eu consegui fazer isso funcionar finalmente. Meu problema é que eu não especifiquei qual protocolo UDP usará - neste caso, 12201. Para corrigir isso, você precisa começar assim:
docker run -t -p 9000:9000 -p 12201:12201/udp graylog2/allinone