KVM→Docker移行時のメモ


KVM→Docker移行

今回やったイメージ

  • qemu-kvmのrawのイメージファイルをDockerに移行までのメモ(NWは気にしない)
  • LVMで /(LogVol00) と /var(LogVol02) を切っているイメージ
  • OSはCentOS6.2で昔作ったいろいろインストールしてあるやつ(KVMで現役)
  • 余計なものもついてくるが気にしない(動けばいい)

memo

$ qemu-img info node.img 
image: node.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 20G 
  • イメージをマウント(適当なツールでもいい)
$ losetup /dev/loop0 node.img
$ kpartx -a /dev/loop0
$ vgchange -ay
$ lvscan
Active 'hogehoge'
$ mkdir -p LogVol00 LogVol02
$ mount /dev/VolGroup00/LogVol00 LogVol00
$ mount /dev/VolGroup00/LogVol02 LogVol02
  • マウントしたファイルを全コピ
$ mkdir images
$ rsync -a LogVol00/* images/
$ rsync -a LogVol02/* images/var/
$ cd images/dev
$ mknod -m 666 null c 1 3
$ mknod -m 666 zero c 1 5
$ mknod -m 666 random c 1 8
$ mknod -m 666 urandom c 1 9
$ mkdir -m 755 pts
$ mkdir -m 1777 shm
$ mknod -m 666 tty c 5 0
$ mknod -m 666 tty0 c 4 0
$ mknod -m 666 tty1 c 4 1
$ mknod -m 666 tty2 c 4 2
$ mknod -m 666 tty3 c 4 3
$ mknod -m 666 tty4 c 4 4
$ mknod -m 600 console c 5 1
$ mknod -m 666 full c 1 7
$ mknod -m 600 initctl p
$ mknod -m 666 ptmx c 5 2
  • tar に固める
$ tar --numeric-owner -Jcpf centos_base.tar.xz -C images .
  • Dokcer Import
$ cat centos_base.tar.xz | docker import - mycentos:1
  • 確認
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
mycentos            1                   47bd9b4521ba        About a minute ago   788.2 MB
$ docker run -it mycentos:1 /bin/bash