かあちゃんエンジニアの気まぐれ開発メモ

フリーランス15年から足を洗ったかあちゃんエンジニアの技術メモ

【Docker】ログがどこだかわかんない件

肥大化したログファイル

ローカル環境の動作確認で、Dockerが大活躍なんですけど。 どうもログファイルがどんどこ大きくなってる気がする。

  dokcer logs ${コンテナID}

でログを確認すると、どわーーーーーーーーーーって出てきて。もう止まらん。 これは、一旦クリアしたいぜ。

そもそもどこにあるのよ?

ありがたきネット先生さまさま。

このコマンドでわかるとのこと。

   docker inspect ${コンテナID} | grep -i log
        "LogPath": "/var/lib/docker/containers/42717343b3b7188304007796f66020e45a6c47a9d82c7a40204be464b80c7caa/42717343b3b7188304007796f66020e45a6c47a9d82.....4be464b80c7caa-json.log",
            "LogConfig": {

でもさ。どういうわけだか、いないの。

ls /var/lib/docker/containers
ls: /var/lib/docker/containers: No such file or directory

こまった母さん。

みいつけた!

コンテナログは、MacOSホストではなくDocker for Mac VMに保存されるそうです。 で、VMにアクセスしてから、ログファイルをクリアしたいのだが、 VMへのアクセス方法が変わっている様子。

私のMac環境だと、この方法が有効でした。

socat -d -d ~/Library/Containers/com.docker.docker/Data/debug-shell.sock pty,rawer

socat がないよっていう場合は、インストールする。

brew install socat

で、socatコマンドでttysの番号などを確認

socat -d -d ~/Library/Containers/com.docker.docker/Data/debug-shell.sock pty,rawer

2022/03/16 16:52:37 socat[13940] N successfully connected from local address LEN=16 AF=1 ""
2022/03/16 16:52:37 socat[13940] N successfully connected via 
2022/03/16 16:52:37 socat[13940] N PTY is /dev/ttys004
2022/03/16 16:52:37 socat[13940] N starting data transfer loop with FDs [5,5] and [6,6]

別のターミナルを開き。

screen /dev/ttys0xx

このttys0xxはsocatで出力された番号と合わせる。

で無事、VMに入ることができました!

  ls /var/lib/docker/containers/

で確認すると、いたよーーーーーー!! ログ発見。めでたしめでたし。

参考にさせていただきました。

socatでの接続方法【2022/03/16現在、私のMacでは有効でした】

https://qiita.com/notakaos/items/b08ba7166bb5b56576a1

screenを使っている方法たち↓

Docker for MacのDisk Imageの場所が変わった - Qiita

jpcodeqa.com