我正在尝试使用在 Windows 主机上运行 VirtualBox 的 Vagrant Docker 提供程序。但我无法登录,因为它要求输入 SMB 用户名/密码。我试过了禁用同步文件夹如下所示。
config.vm.synced_folder ".", "/vagrant", disabled: true
我还尝试使用类型“virtualbox”,当我在 CentOS 中使用 VB 提供程序时,它可以正常工作,但我认为您需要添加客户机,当我使用 vagrant-vbguest 插件时,我收到错误。它抱怨缺少目录,这可能与 boot2docker 映像上的目录结构有关。
mkdir:无法创建目录“/tmp/selfgz117312639”:没有此文件或目录无法创建目标目录 /tmp/selfgz117312639
这是我的配置,我从几个来源拼凑起来。请注意,需要 DockerHostVagrantfile 来绕过内核恐慌。
# Dockerfile
FROM rockylinux/rockylinux:9.0.20220712 #phusion/baseimage
RUN rm -f /etc/service/sshd/down
RUN /etc/my_init.d/00_regen_ssh_host_keys.sh
RUN /usr/sbin/enable_insecure_key
# Vagrantfile
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'docker'
Vagrant.configure("2") do |config|
config.vm.define "DockerTest"
config.ssh.private_key_path = "insecure_key"
config.vm.provider "docker" do |d|
d.name = "DockerTest"
d.build_dir = "."
d.force_host_vm = true
d.has_ssh = true
d.remains_running = true
d.cmd = ["/sbin/my_init", "--enable-insecure-key"]
d.vagrant_machine = "default"
d.vagrant_vagrantfile = "./DockerHostVagrantfile"
end
end
# DockerHostVagrantfile
Vagrant.configure("2") do |config|
config.vm.provision "docker"
config.vm.define "default"
config.vm.box = "hashicorp/boot2docker"
config.vbguest.auto_update = false
config.vm.synced_folder ".", "/vagrant", disabled: true#, type: "virtualbox"
config.vm.network "private_network", ip: "192.168.1.2"
config.vm.provider :virtualbox do |vb|
vb.name = "default"
vb.cpus = 2
vb.memory = 2048
end
end