在 VirtualBox 中使用 Docker(最好通过 Vagrant / Vagrantfile)

在 VirtualBox 中使用 Docker(最好通过 Vagrant / Vagrantfile)

如何使用 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

相关内容