はじめに
「たった1日で基本が身に付く! Docker/Kubernetes超入門」という本を勉強していたところ、書籍ではHyper-vで作成したCentos環境で説明していたところを、Docker Desktopでやっていて書籍通りに行うことができかなったため記事にしました。
やりたいことはコンテナから出力されたログをcat
で確認することです。
問題
標準入力/標準エラーのログを直接確認するため、以下の手順で確認を行おうとしました。
$ docker container inspect <コンテナ名>
LOGPATH
を参照して、アクセスログの場所を特定します。
そこにcdで移動して、ログの内容を確認します。
$ cd /var/lib/docker/containers/<コンテナID>/
$ cat <コンテナID>-json.log
ここで以下のようなエラーがでて移動でエラーになりました。
(ファイルがないので当然です)
解決方法
では、書籍で行われているこの動作はどのように再現できるのでしょうか。
Docker DesktopではWSLが利用されており、ローカルのフォルダにマウントされています。
ですので、WSLと対応しているローカルフォルダにまず移動する必要があります。
場所は以下になります。
# cd /var/libに対応
$ cd \\wsl$\docker-desktop-data\version-pack-data\community\
$ cd /docker/containers/<コンテナID>
$ cat <コンテナID>-json.log
こちらで書籍どおりのログの確認ができるようになりました。
おわりに
書籍がHyper-Vで作成した環境でDockerを動かしていますが、私はDocker Desktopを使って同じことをしていたため、やはり違う箇所ができてます。色々書籍通りにいかないことが多く、1日で終わる本をかなり長い時間かけて勉強しています。やはりインフラ系は普段やらないため難しいです。