dockerイメージをloopbackデバイスを使用して、mountする方法。(ex11.2 option)
大学の課題のメモ。作業中楽しかったので、久々にブログる。
課題 「dockerイメージをloopbackデバイスを使用して、mountして、dockerの中のファイルをいじろ!!」
やり方
dockerをrunして、 dockerをcontrol + pとcontrol + qでデタッチ
$losetup /dev/loop2 /dev/mapper/"マウントしたいdockerイメージ"
でマウントしたいdockerイメージをloop backデバイスに縄付ける。 マウントしたいdockerイメージは、tabを押せば出てくる。 自分の場合は、docker-253:0-35053790-e7af597718d6e033d81e36dbccff5539fe8c2f74dcd28914d0bda511f4eab40d ってでた。
間違って、poolを選ばないように。
$mkdir /mnt/mountpoint $mount /dev/loop2 /mnt/mountpoint
で、マウント先を作成して、マウント
ちなみに、アンマウントは、
umouunt /mnt/mountpoint
だと思う。
簡単だと思うけど、ここまでたどり着くのにかなり苦労しました。
苦労・感想
/dev/loop0をddコマンドでイメージを作成して、loop2にして、マウントしたができない苦労。できても、マウント先に何もない苦労。
/dev/loop0をddコマンドでイメージを作成して、mkfs.xfsコマンドでxfsフォーマットにして、loop2にして、マウントしたができない苦労。できても、マウント先に何もない苦労。
さらに、/dev/loop0をddコマンドでイメージを作成して、mkfs.xfsコマンドでxfsフォーマットにして、xfs_admin -uでuuidを確認して、マウントする際にmount -U 2f71b437-b644-4d47-b1ab-b913f7513ea6したが、マウントしたができない苦労。できても、マウント先に何もない苦労。
dmってのは、mapperで/dev/mapperにあるってのを気づいたので、できた(なんでもっと早く気付かない。)
できなかったのは、ddコマンドのxfsがおかしいと思う。そもそも、仕様てきにとかも思ったりもしてる。(適当) dockerのイメージは、mapperらしい(mapperあまりわからない.)
あと、xfsフォーマットや、xfs_adminコマンドについて学べました。
ちょうど、マウント祭りをやりたいなーと思ってたところなので、楽しかったです。 次は、lvmとかnfsについてやりたいなー。(そうゆう課題が欲しい()
参考文献
複数パーティションのHDDのRAWイメージをマウントする方法まとめ - それマグで!
RHEL7におけるDockerのディスクイメージ管理方式 - めもめも
XFS Filesystem has duplicate UUID problem - Administration - Linux Tips & Forums