如何使用 Virtualbox(最好使用Vagrantfile
)制作允许Dockerfile
在内部运行的虚拟机? (架构:x86-64)
目标:我希望受益于 VirtualBox 虚拟机隔离(为了安全),同时在 Docker 内部运行(如果不可能的话,可以运行Dockerfile
),这Dockerfile
是事实上非常流行的标准。如果可能的话,为了使其“作为代码”,让我们使用Vagrantfile
来定义 VirtualBox VM。
非目标:使用 Vagrant 和 Docker 作为提供者。
假设它不起作用的原因:IDK,但我猜它可能与嵌套虚拟化有关?由于我的目标是利用虚拟机的 Virtualbox 隔离,因此如果需要,我们可以将内部虚拟机 docker 配置为不太“安全”(如果可以使其正常工作),因为我们在这里使用虚拟机进行隔离。
我尝试了不同的选项,但不起作用,因此提供一些文件以便于复制和粘贴vagrant up
开始:
高山Vagrantfile
:(不起作用)
Vagrant.configure("2") do |config|
config.vm.box = "alpine/alpine64"
config.vm.provision "shell", inline: <<-SHELL
sudo apk update
sudo apk add docker
sudo rc-update add docker boot
sudo service docker start
SHELL
end
ArchLinux Vagrantfile
:(不起作用)
$script = <<-'SCRIPT'
pacman --noconfirm -Syyu
pacman --noconfirm -S docker
gpasswd -a vagrant docker
systemctl docker enable
systemctl docker start
SCRIPT
Vagrant.configure("2") do |config|
config.vm.box = "archlinux/archlinux"
config.vm.provider "virtualbox" do |v|
v.name = "Archlinux_With_Docker"
v.memory = 512
v.cpus = 2
end
config.vm.provision "shell", inline: $script
end