KazuminEngine

プログラマーの日記

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