在使用docker容器時(shí),有時(shí)候需要在容器內(nèi)部運(yùn)行一些虛擬機(jī)。這時(shí)候可以使用docker提供的docker-machine工具來(lái)實(shí)現(xiàn)虛擬機(jī)的部署。
$ docker-machine create --driver virtualbox default
上述代碼會(huì)在本地安裝virtualbox,并創(chuàng)建一個(gè)名為default的虛擬機(jī)。如果沒(méi)有安裝virtualbox,則需要先安裝virtualbox。
$ docker-machine start default $ eval "$(docker-machine env default)"
上述代碼會(huì)啟動(dòng)default虛擬機(jī),并設(shè)置docker客戶端連接到default虛擬機(jī)。
$ docker run --rm -it --privileged --pid host justincormack/nsenter1
上述代碼可以在default虛擬機(jī)內(nèi)運(yùn)行一個(gè)新的容器。注意,必須使用--privileged和--pid host選項(xiàng),否則將無(wú)法運(yùn)行虛擬機(jī)。
$ apt-get update $ apt-get install -y kvm libvirt-bin virtinst bridge-utils
上述代碼會(huì)在容器內(nèi)部安裝KVM,libvirt和virtinst等虛擬化軟件。
$ virt-install --connect=qemu:///system --name=myvm --ram=2048 --vcpus=2 --disk path=/var/lib/libvirt/images/myvm.img,size=20 --cdrom=/var/lib/libvirt/images/ubuntu-18.04.4-server-amd64.iso --os-type=linux --os-variant=ubuntu18.04
上述代碼會(huì)創(chuàng)建一個(gè)名為myvm的虛擬機(jī),并使用20G的硬盤(pán)、2048MB的內(nèi)存和2個(gè)CPU。同時(shí),會(huì)從iso文件中安裝Ubuntu 18.04操作系統(tǒng)。
使用docker-machine工具可以很方便地在容器內(nèi)部運(yùn)行虛擬機(jī),并進(jìn)行各種操作。需要注意的是,在運(yùn)行虛擬機(jī)時(shí)一定要添加--privileged和--pid host選項(xiàng),并且根據(jù)實(shí)際情況調(diào)整代碼中的參數(shù)。