docker in lxc试验




docker in kvm

首先尝试在debian7 wheezy kvm虚拟机中安装运行docker,试验可以成功,步骤如下:

  1. 添加wheezy-backports源,升级内核到3.14以上的bpo版本(为了支持aufs文件系统),源里有2个版本,选择linux-image-3.16-0.bpo.3-amd64
  2. 之后执行curl -sSL https://get.docker.com/ | sh,即可自动安装部署好docker服务
执行完毕会输出hello-world镜像的运行结果:
docker in lxc in kvm
继续在之前的基础上试验在kvm中安装libvirt-lxc,之后再在lxc中安装docker,试验失败,步骤如下:
  1. 安装libvirt,apt-get install libvirt0 libvirt-bin python-libvirt,注意使用wheezy-backports源中的版本,目前的版本是:
  2. 拷贝一个lxc镜像到kvm虚拟机中(云网络联调环境有一个debian7-amd64的lxc镜像)
  3. mount镜像到/mnt目录(modprobe nbd;qemu-nbd -c /dev/nbd0;mount /dev/nbd0 /mnt)
  4. 增加bridge设备,brctl addbr br0,然后修改/etc/network/interfaces文件:
  5. 重启kvm虚拟机(注意:请先为kvm虚拟机提前设置密码,防止网桥配置错误导致无法ssh登录kvm虚拟机,有密码可以通过vnc登录)
  6. 编写lxc虚拟机的xml文件,示例如下:
  7. 在kvm虚拟机中启动lxc虚拟机,virsh命令如下:
  8. lxc虚拟机启动,由于没有给lxc虚拟机配置ip和dhcp服务,lxc虚拟机会自动把kvm虚拟机的bridge的ip拿到,此时你用ssh登录kvm虚拟机的私有网ip,会直接登录到lxc内部,这一点不影响我们的测试
  9. 登录到lxc内部,执行curl -sSL https://get.docker.com/ | sh,会发现docker守护进程由于没有网桥设备无法正常运行,改成无网络模式docker -d -b none运行后正常
  10. 执行docker run –rm hello-world进行测试,报错:
  11. 增加–privileged参数,报另外的错误:

docker in lxc on host

改为在lxc虚拟机里面安装docker进行实验,也即lxc直接运行在物理宿主机上,而不是kvm中,宿主机内核版本是3.10.45。
步骤为:
  1. 在nova中使用debian7-amd64-lxc镜像创建lxc虚拟机
  2. lxc虚拟机中执行curl -sSL https://get.docker.com/ | sh
实验失败,错误与上面的docker in lxc in kvm一样。
问题未解决,抛砖引玉,请明白人指点迷津啊!~