upinetree's memo

Web系技術の話題や日常について。

docker diff が勉強に便利

たとえば

% docker run -it --name hoge ubuntu /bin/bash
root@db1da9fc72e9:/# useradd hoge
root@db1da9fc72e9:/# exit
% docker diff hoge
C /etc
C /etc/group
A /etc/group-
C /etc/gshadow
A /etc/gshadow-
C /etc/passwd
A /etc/passwd-
C /etc/shadow
A /etc/shadow-
C /etc/subgid
A /etc/subgid-
C /etc/subuid
A /etc/subuid-
C /root
A /root/.bash_history
C /var
C /var/log
C /var/log/faillog
C /var/log/lastlog
% docker start -i hoge
root@db1da9fc72e9:/# diff /etc/passwd{,-}
...

みたいな感じにコマンドがどういう変更を行うのかを追いやすい。

ちなみに先頭のアルファベットの意味は下記の通り。

  • A - Add
  • D - Delete
  • C - Change

差分も表示してくれると嬉しいがそういうオプションはなさそう。 そういうときはdocker exportしてtarballを吐いて、コンテナ間の差分を見れば良いのかな。