docker のコンテナ環境からのログ出力を
ホスト環境の journald に送るためには
コンテナの起動時にログドライバを指定する必要がある。
docker run --log-driver=journald puipu
一般的には、stdout/stderr への出力は
システムプロセス以外ではロギングされない
とされているのだが、なぜかロギングされる。
ただし、なぜかシングルスレッドは出力されるのだけれど
マルチスレッド部分で出力するとロギングされない。
さらに、
docker run --log-driver=journald -it puipui /bin/bash
とかすると、メッセージはポインタとサイズの報告に化ける。
さらにさらに、、、
ログドライバを指定しても syslog 関数の出力はホストには
届かない。
syslog関数の出力は UNIXドメインソケットに出力されるため、
コンテナの該当ソケットをホストのそれにマウントする必要がある。
もしログをsyslog関数で出力しているのならログドライバは不要。
コンテナ起動時のマウントコマンドだけでよい。
docker run -v=/dev/log:/dev/log puipui