基于CentOS7制作带Docker的Vagrant基础Box

初始化Vagrant工程并启动虚拟机

1
2
vagrant init "centos/7"
vagrant up

Vagrantfile内容如下

1
2
3
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
end

虚拟机中安装VBoxGuestAdditions

  1. 将VBoxGuestAdditions.iso解压到Vagrant工程目录
  2. 执行安装命令
1
2
sudo yum install kernel-headers kernel-devel gcc make
sudo /VBoxGuestAdditions/VBoxLinuxAdditions.run

备注: VBoxGuestAdditions.iso可以从Virtualbox安装目录下找到.

虚拟机中安装Docker

1
2
3
4
5
6
7
8
9
10
sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
newgrp docker
docker info

设置不安全的ssh公钥

1
2
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
" >> ~/.ssh/authorized_keys

备注:此步骤如果不进行,会导致基于此Box的虚拟机无法启动(ssh认证失败).

导出box

1
2
#vagrant package --base <Your VM Name>
vagrant package --base centos-with-docker_default_1615543273586_25894

在Vagrant工程目录可以看到导出的package.box.

测试Box

1
2
3
4
5
vagrant box add --name my-box package.box
mkdir test-box
cd test-box
vagrant init my-box
vagrant up

参考

  1. General Guide to Creating Base Box
  2. Creating a Virtualbox Base Box
  3. insecure keypair