docker容器中启动kvm虚拟机

1.安装docker

yum install docker

systemctl start docker.service

systemctl enable docker.service



2.拉取centos7镜像

docker pull centos:7



3.在镜像中安装kvm环境,并制作成镜像

docker run -i -t --privileged centos:7 /bin/bash

[root@73ae1783cd25 ~]# yum install centos-release-openstack-pike

[root@73ae1783cd25 ~]# yum install libvirt kvm

[root@73ae1783cd25 ~]# yum install openssh-clients

[root@73ae1783cd25 ~]# scp root@172.17.0.1:/root/tmp/cirros-0.4.0-pre1-x86_64-disk.img    /home

[root@73ae1783cd25 ~]# scp root@172.17.0.1:/root/tmp/xml    /home

[root@73ae1783cd25 ~]# libvirtd -d

[root@73ae1783cd25 ~]# virsh create /home/xml

 

[root@73ae1783cd25 ~]# virsh list
Id Name State
----------------------------------------------------
3 cirros running

[root@73ae1783cd25 ~]# virsh destroy 3
Domain 3 destroyed

[root@73ae1783cd25 ~]# exit

[root@acer docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73ae1783cd25 libvirtkvm "/bin/bash" 37 minutes ago Exited (0) 11 seconds ago lonely_noether

[root@acer docker]# docker commit -m "libvirt kvm environment" -a "zxy" 73ae1783cd25 libvirtkvmlast
sha256:00dd409ec46c361ed4c8f3772e97ff070dc87d1d18e7a8514d02edecc4a61c85

[root@acer docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
libvirtkvmlast latest 00dd409ec46c 47 seconds ago 10.93 GB

制作的镜像的名字即:libvirtkvmlast

再次启动:

[root@acer docker]# docker run -i -t --privileged libvirtkvmlast /bin/bash

 

4.记录的几点

容器中的kvm和libvirt的版本是最新的2.9和3.2,和当前环境中的版本不同,所以如果要使用的话, docker镜像要另选择其他centos镜像或者自己制作。

如果要将虚拟机迁移到容器中,虚拟机的网络的迁移要单独处理。或许可以用veth对,连接容器和虚拟机原来所在的ovs网桥,保证网络的连通状态。

还未验证同一个宿主机中不同容器中的虚拟机的迁移,以及宿主机与容器之间进行虚拟机迁移。
原文地址:https://www.cnblogs.com/gushiren/p/9591097.html